Vai al contenuto

File REST su disco C corrotto

Home Forum Informazioni ambiente di sviluppo LogicLab File REST su disco C corrotto

Taggato: 

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #70781
    giuliano.bruna
    Partecipante

    Ho un problema su delle CPU MPS054B110, lo stesso programma caricato su tutti moduli CPU esegue:

    • Scarica da un server un file txt tramite protocollo FTP e lo salva sia su disco C che D. Questo avviene una volta al giorno o ad ogni riavvio della CPU.
    • Invia tramite la funzione REST dei dati ad un server che sono salvati in locale sul disco D tramite un FB FIFOFile su un file nominato “REST.bin”.

    Ultimamente diversi di questi file “REST.bin” risultano corrotti o con mancanza di dati, inoltre cancellando il file in modo che il programma lo ricrei da zero all’interno del nuovo file si trovano anche i dati del file txt. Cosa potrebbe causare questo intreccio di dati?

    In più al primo avvio non riesce a creare il file “REST.bin” e segnala questo:

    15:53:34.327040|RESTClient:Er|FIFOFile Error:10056084, On case:1

    Purtroppo però non ho trovato nulla riguardo al codice errore 10056084.

    #70836
    Sergio Bertana
    Amministratore del forum

    Cominciamo con l’errore, se vai alla pagina Elenco errori ed inserisci il numero di errore troverai questa indicazione:

    10056084 Indici FIFO non sono corretti file viene ricreato FIFOFile

    L’errore stà ad indicare che gli indici del registro FIFO non sono corretti, il fatto che non siano corretti mi fà pensare che in qualche parte del programma vengano sporcati, esempio da puntatori spuntati o da array fuori dimensione. Ora partendo dall’ipotesi degli indici corrotti posso costruire una teoria su cosa succede al file “REST.bin”.

    Come in tutt i file systems i dati sul disco non sono mai cancellati ma si opera a livello di FAT, ora quando un nuovo file viene creato questo và a posizionarsi sul disco in una posizione libera, ma quella posizione poteva prima essere stata occupata da un’altro file (magari txt). Il FB FIFOFile scrive i suoi dati dall’inizio del file consecutivamente (Ma per sua natura alloca comunque lo spazio che gli è stato definito). Quindi se guardi il file con un editor vedrai i dati FIFO all’inizio e poi dopo l’ultimo record salvato vedrai il precedente contenuto del disco in quella posizione (magari parti txt di un vecchio file).

    La scrittura sul file FIFO è consecutiva quindi tra record FIFO corretti non può esserci il precedente contenuto del disco, ma se gli indici FIFO sono sporcati la scrittura sul disco viene frammentata ed allora anche tra i record FIFO potresti trovarti parti del precedente contenuto del disco.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.