¿Bajo qué circunstancias el proceso del Sistema (PID 4) conserva un identificador de archivo abierto?


Mi aplicación que se ejecuta en un servidor Windows hace uso de una base de datos Jet/Access. Por algunas razones alrededor de cada dos semanas que el archivo de base de datos se bloquea por el proceso del Sistema (PID 4, parece ser fijo)

Después de buscar en Google encontré algunos otros usuarios con sus archivos bloqueados por ese proceso especial, pero archivos diferentes (por supuesto).

  • ¿Cuál es la razón general para que el proceso del Sistema mantenga un controlador de archivo abierto?
  • Es mi aplicación la causa de este bloqueo situación?
  • ¿Todos los controladores están abiertos implícitamente por el proceso del Sistema? Me imagino que después de que un proceso se ha estrellado, el controlador puede seguir abierto y el proceso del Sistema de alguna manera toma posesión de ese controlador.
  • puedo hacer algo en mi aplicación para evitar que suceda?
Author: Daniel Rikowski, 2009-08-18

8 answers

Esto me suena como un problema a nivel de conductor con un mango con fugas.

Si está ejecutando un paquete antivirus, intente actualizar, deshabilitar (¡temporalmente!) o cambiar a una marca diferente.

 7
Author: devstuff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-18 12:41:52

Los archivos a los que se accede a través de un recurso compartido serán bloqueados por el proceso del sistema (PID 4).

Intenta abrir compmgmt.msc -> Herramientas del Sistema -> Carpetas Compartidas -> Abra Archivos para ver si el archivo bloqueado aparece en la lista

Ver también el foro sysinternals para una forma de replicar esto.
No todas las aplicaciones bloquean archivos cuando se abren, Excel sin embargo lo hace. No se si Access hace lo mismo...

 41
Author: janv8000,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-22 09:11:23

Aquí hay otra posible causa que he encontrado:

Hay un error en Windows 7 y probablemente en Windows Server 2008 (posiblemente solo versiones de 64 bits). Aparece cuando deshabilita el servicio Application Experience y causa los mismos problemas que se describen en la pregunta.

Volver a habilitar este servicio ha solucionado este problema para mí.

Un poco más de información aquí en cuanto a por qué está causando un problema.

Lista de otras preguntas SO que parecen ser relacionado:

 26
Author: Maiku Mori,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:46:21

Puede ser una sesión prolongada desde un equipo remoto a una carpeta compartida. Si ese es el caso, se puede desbloquear desde la línea de comandos:

net session /delete
 6
Author: Saintali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-17 18:35:29

¿Está configurado su servidor para realizar copias de seguridad periódicas de archivos?

Si es así, ¿la copia de seguridad se está ejecutando como Sistema, tal vez solicitando el archivo bloqueado cuando se produce un conflicto?

 1
Author: Greg D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-18 12:13:37

Para mí, fue "Windows Defender" (antivirus). Excluí mis carpetas de compilación de Visual Studio de la lista de carpetas de Windows Defender que comprueba, y el problema desapareció. (Visual Studio no pudo compilar el archivo EXE, PID 4 lo bloqueaba para comprobar si había virii)

 1
Author: eric frazer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-18 15:04:03

Para mí tuve que golpearlo con un mazo. Chkdsk / f en la unidad donde se encontraba la carpeta lo arregló. Úselo con precaución.

 1
Author: greenvomit8,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-12 23:10:14

Compruebe la configuración de seguridad de cada carpeta y subcarpetas. Asegúrese de que el sistema no solo crea automáticamente una configuración de permisos especiales que no permitirá a nadie eliminar el archivo. Aparentemente por alguna extraña razón, el sistema operativo crea una configuración de permiso especial extraña que protege el archivo de ser eliminado.

 0
Author: Jimmy Za,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-26 18:59:27