Explicación
OGR (parte de GDAL) es la biblioteca utilizada por QGIS para acceder a los archivos de forma. Cuando OGR elimina características, no las elimina de inmediato, sino que solo las marca como eliminadas. De vez en cuando, se ejecuta un comando llamado repack , que crea un nuevo archivo con el sufijo _repack y copia todas las características que no están marcadas como eliminadas en este nuevo archivo. Una vez que finaliza, el .dbf original se reemplaza con el _repack.dbf. Luego hace lo mismo con el archivo shape: crea uno nuevo (_packed.shp), copia todas las características no eliminadas y eventualmente reemplaza el .shp original.
Parece que en algún lugar de este proceso, algo falló (¿tal vez un bloqueo?).
Dentro de este proceso, los identificadores de características cambian, así que supongo que la shp (geometría) que tiene y la dbf (tabla de atributos) usan diferentes identificadores de características para las mismas características, lo que conduce al comportamiento extraño que experimenta. Parece que uno de los dos archivos todavía contiene (parte de) las características eliminadas, mientras que el otro no.
Como lidiar con esto
Actualización, noviembre de 2016: GDAL 2.2 se entrega con funcionalidad incorporada para llamar a reempaquetar automáticamente cada vez que el archivo se escribe en el disco. Entonces, antes de hacer cualquier otra cosa: verifique la versión de GDAL en el cuadro de diálogo QGIS sobre y actualice su versión de GDAL (a menudo incluida como parte de QGIS) a una versión reciente.
Probablemente no haya mucho que pueda hacer al respecto, aparte de hacer copias de seguridad periódicas para no perder más datos de los que puede manejar (de todos modos lo está haciendo, ¿verdad? 😉). Y si encuentra una manera de reproducir esto (mejor con un conjunto de datos de muestra) cree un informe de error .
Si vuelve a experimentar este problema, también puede intentar crear un índice espacial en el archivo de forma. En este proceso, QGIS volverá a llamar al reempaquetado en el archivo shape y podría "reparar" el shp / dbf. Pero esto es solo una suposición no verificada.
Como mencionó @rhm y en los comentarios, también puede ayudar cambiar el nombre del archivo {xyz} _packed. {Ext} a {xyz}. {Ext} . Si el archivo empaquetado ya se ha escrito completamente y fue solo el cambio de nombre el que falló, es absolutamente válido realizar este paso manualmente. Sin embargo, si el archivo _packed no se ha escrito completamente, es posible que le falte información de partes de sus funciones. Entonces, antes de intentar esto, haga copias de seguridad de todos los archivos involucrados.
Información básica sobre cuándo se llama a reempaque
Entre QGIS 2.0 y 2.8 se ha llamado al reempaque cada vez que se descargó la capa (salga de QGIS, cargue un proyecto diferente ...). Si se ha eliminado una característica o se ha cambiado una geometría, los archivos .shp y .dbf con registros marcados como eliminados han estado presentes.
Comenzando con QGIS 2.10 se llama al reempaque cada vez que se guarda la capa después de una operación que tiene el potencial de agregar el indicador eliminado a los registros. Por lo tanto, los archivos ahora deben estar siempre en un estado sano para ser procesados por otras aplicaciones.