Skip to content

Cotejo de referencias de Immich, 20 octubre 2026

Después de restaurar PostgreSQL, el cotejo de NAS terminó satisfactoriamente: 31.595 de 31.595 referencias presentes, archivos regulares, no vacíos y UID esperado. Dump protegido SHA6c3b…, generaciones photos/pics20261019. La presencia y los metadatos quedan acreditados; contenido completo y coherencia temporal global permanecen pendientes.

Fuentes revisadas: assembler03c47a9e… (16 tests) y checker e6c2d7df… (15 tests), ejecutadas independientemente sólo con fixtures locales. El primer lector real se detuvo por una línea ajena a asset mayor de1MiB; diagnóstico acotado confirmó in_asset=false/is_COPYprefix=false,304027009 bytes expandidos al encontrarla. Se conserva el límite: ahora esa línea se consume por chunks sin acumularla, manteniendo8GiB/300s/CRC/SHA y rechazando headers o assets grandes. No se leyó ninguna foto ni se inició un recorrido NAS durante el ajuste.

El manifiesto será privado0600, vinculado por SHA del dump y digest del cuerpo NDJSON; cuenta multiplicidades, archivos únicos y prefijos de directorio antes de cualquier consulta. Máximo16MiB,35000 referencias y 4D+U+64 operaciones estimadas, rechazando más de80000.

El checker NAS Python2.7 sólo abre directorios, con FD anclados, fchdir y O_DIRECTORY|O_NOFOLLOW. Hojas mediante lstat, sin abrir cuerpos. Valida todos los datos antes de recorrer; comprueba UID1026, raíces concretas dev/inode/modo y reancla al terminar. Hardlinks permitidos por link-dest. Máximo100operaciones/s, 900segundos y60FD propios. Salida agregada: categorías, cobertura y pendientes. content_verified=false y coherence_verified=false siempre. Ni metadata_match acredita integridad de bytes ni una instantánea atómica contra cambios externos.

Capacidades NAS01:32: /usr/bin/python2.7.18/euid1026 admite fchdir/fstat/ O_DIRECTORY16384/O_NOFOLLOW32768; O_CLOEXEC no está expuesto. Lectura selectiva de nueve ancestros01:34 confirma dos directorios0777 anteriores a BASE privado; se fijan sus identidades, sin modificar permisos. No instalar software ni modificar forced receiver. Compilación nativa y ejecución real siguen pendientes.

Manifiesto privado y compilación nativa, 01:40 CEST

Extracción local completa:31595 referencias únicas,10266 directorios internos, 72723operaciones estimadas. NDJSON4219168bytes/0600 en stage nuevo0144, SHA256<REDACTED>; bodySHA256<REDACTED>. Hash del dump/CRC/identidad intactos; una línea ajena a asset de5047430bytes se descartó incrementalmente, sin elevar límites. No se escribieron stages previos.

El checker e6c2d7df… compila con el Python2.7.18 real del NAS como UID1026 sin ejecutar su programa ni recorrer carpetas. El recorrido sigue pendiente: el helper de autenticación antiguo usa PTY/timeout45s y no sirve para4,2MB/EOF. Se prepara un bridge SSH-T con autenticación separada mediante ASKPASS nativo, sin sudo ni secretos en fichero/env y con límites de transporte. Antes del recorrido se revisará y publicará; no se envió el manifiesto al NAS todavía.

Resultado real del recorrido

Una ejecución de bridge96464a0… sobre checkere6c2d7df… y manifiesto3bffd1ff… terminó exit0/statusmetadata_match, coverage_complete=true/root_changed=false. Procesadas31595, pendientes0: photos10803 y pics20792, todas regular/UID1026/ tamaño positivo. Todas las categorías missing/symlink/type/uid/empty/unavailable en cero. Metadata_ops72461≤80000, peakFD8≤60; sin lectura de cuerpos ni escritura de archivos NAS. No hubo reintentos ni consultas adicionales.

Recibo local privado0600/fsync en stage20261020-check0149,1340bytes, SHA256<REDACTED>. Content_verified=false y coherence_verified=false no se elevan por esta prueba. Las identidades de raíces coincidieron al terminar; sigue sin ser una instantánea atómica contra administradores externos ni prueba criptográfica de todos los bytes.

La selección local de originales también terminó:100 candidatos de upload y ninguno de library, exclusivamente algoritmoSHA1/campo bytea válido. JSON600 SHA256<REDACTED>, dump/CRC/identidad intactos y nuevo manifiesto duplicado idéntico. Sólo contiene rutas y hashes en privado; no se han leído fotos durante esa selección.

Tres originales recuperados y verificados, 02:05 CEST

Tras publicar las fuentes en 336d44f, 32 pruebas y una integración sintética independiente pasaron; ambos helpers compilaron en Python2.7.18 del NAS, UID1026. Una única ejecución real recuperó tres originales de upload, 6098264bytes en total, a un stage local nuevo privado. Los SHA1 coinciden con el dump19 y los SHA256 remotos coinciden tras releer los tres archivos locales. Raíces estables; TAR USTAR limitado a tres nombres anónimos y prueba final, sin escrituras NAS.

Recibo privado en 20261020-samples0210/receipt.json (0210 es identificador del stage; observación real02:05), SHA256 <REDACTED>. sample_content_verified=true; originals_verified=false y coherence_verified=false permanecen explícitos. No acredita todos los originales ni una restauración completa de la aplicación.