I ran into a very weird bug with fs.copyFileSync. at the end of the copy call, I check the size of source and destination and sometimes, the sizes do not match!
here is the code:
fs.copyFileSync(sourceFilepath, destPath)
let sourceStat = fs.statSync(sourceFilepath)
let destStat = fs.statSync(destPath)
if(sourceStat.size !== destStat.size) {
throw new Error(`1. source destination file sizes do not match, src: ${sourceStat.size} dest: ${destStat.size}`)
}
and here is the output:
127.0.0.1 | POST /api/file 200 491.799 ms - 167
terrainFileService | POST /api/file 200 486.646 ms - 167
terrainFileService | Finished uploading all files
terrainFileService | terrainApi.addTerrainFile...
terrainFileService | extension: tif
terrainFileService | terrainApi.addTerrainFile done...
terrainFileService | POST /api/file 200 489.242 ms - 167
127.0.0.1 | POST /api/file 200 498.612 ms - 167
terrainFileService | Finished uploading all files
terrainFileService | terrainApi.addTerrainFile...
terrainFileService | extension: tif
terrainFileService | terrainApi.addTerrainFile done...
terrainFileService | POST /api/file 200 490.512 ms - 167
127.0.0.1 | POST /api/file 200 496.576 ms - 167
terrainFileService | Finished uploading all files
terrainFileService | terrainApi.addTerrainFile...
terrainFileService | extension: tif
terrainFileService | 1. source destination file sizes do not match, src: 49967321 dest: 49938432
terrainFileService | POST /api/file 500 518.133 ms - 87
127.0.0.1 | POST /api/file 500 522.977 ms - 87
terrainFileService | Finished uploading all files
terrainFileService | terrainApi.addTerrainFile...
terrainFileService | extension: tif
terrainFileService | 1. source destination file sizes do not match, src: 51434105 dest: 51396608
127.0.0.1 | POST /api/file 500 476.689 ms - 87
terrainFileService | POST /api/file 500 471.485 ms - 87
terrainFileService | Finished uploading all files
terrainFileService | terrainApi.addTerrainFile...
terrainFileService | extension: tif
terrainFileService | 1. source destination file sizes do not match, src: 54837525 dest: 54804480
127.0.0.1 | POST /api/file 500 562.032 ms - 87
terrainFileService | POST /api/file 500 554.531 ms - 87
terrainFileService | Finished uploading all files
terrainFileService | terrainApi.addTerrainFile...
terrainFileService | extension: tif
terrainFileService | terrainApi.addTerrainFile done...
terrainFileService | POST /api/file 200 600.344 ms - 167
127.0.0.1 | POST /api/file 200 630.117 ms - 167
I am running the code in a docker system inside a centos virtual machine. Any ideas to why this happens? copy pasting code using terminal works perfectly fine .
I added a while loop to copy again when not matching which fixed the issue but this is really weird.