Page MenuHome

Corrupting blender files on binary edits
Closed, ArchivedPublic


Bam corrupting blender files after applying binary edits apparently when nonproject files present on compressed blend files.
I'll build a new test for it.



Event Timeline

Gabriel Caraballo (eibriel) created this task.
Gabriel Caraballo (eibriel) claimed this task.
Gabriel Caraballo (eibriel) raised the priority of this task from to Needs Triage by Developer.

@Campbell Barton (campbellbarton) I can't find the main reason of the error, but I made a test case using a simplified version of a production blendfile.
The test is on the new temp-testcase-T46849 branch, commit rBAM4f7941258e71203d465bcf65149436917fe4c5bf

Sergey Sharybin (sergey) triaged this task as Normal priority.

@Gabriel Caraballo (eibriel), it's kinda makes sense to provide steps needed to reproduce the issue..

@Campbell Barton (campbellbarton), any chance you can look here? :)

Running the test will reproduce the issue automatically, except for creating the Blend file.

python3 -m unittest test_cli.BamRelativeAbsoluteTest.test_absolute_relative_from_blendfiles_incomplete

I can't isolate the exact blend file characteristic making BAM to fail yet, but could be something related with Compression.
The same file, uncompressed, is not failing.

Apparently in this particular file BAM is applying the binary changes after compressing it.

Because the paths shouldn't be visible in a compressed file. Right?

diff <(xxd level1_lib_ok.blend) <(xxd level1_lib_broken.blend)
< 008dc30: d6ba 4a59 d32d f086 5843 ac85 1ea9 bb54  ..JY.-..XC.....T
< 008dc40: d7b0 b69c b9e5 367d 8f58 6b23 accd 0662  ......6}.Xk#...b
< 008dc50: 2dda 016b 6711 d6a2 be1c c25c d666 0f1a\.f..
< 008dc60: 475c 3b79 5f77 5c7b f4d8 d66d 878e 6d3d  G\;y_w\{...m..m=
< 008dc70: fdd0 551d a1ad 13d6 b2ff a4b8 d67e a6cb  ..U..........~..
> 008dc30: 2f2f 2e2e 2f2e 2e2f 5f72 6f6f 742f 6c65  //../../_root/le
> 008dc40: 7665 6c31 5f6c 6962 2f74 6578 7475 7261  vel1_lib/textura
> 008dc50: 2f61 7574 6f6d 6172 7461 5f61 7369 656e  /automarta_asien
> 008dc60: 746f 6465 6c61 6e74 6572 6f5f 636f 6c2e  todelantero_col.
> 008dc70: 706e 6700 a1ad 13d6 b2ff a4b8 d67e a6cb  png..........~..
< 008f490: c45b b403 de9e 8df0 16f5 181f eba7 e16d  .[.............m
< 008f4a0: fee3 cc9b 75cf 251c 8cf0 56f2 b601 e45e  ....u.%...V....^
< 008f4b0: eddc e200 deda bf75 796b 3e5c e25b 2913  .......uyk>\.[).
< 008f4c0: 6fd9 62f4 52f3 16f2 ea9b b779 e2ad 56c1  o.b.R......y..V.
> 008f490: 2f2f 2e2e 2f2e 2e2f 5f72 6f6f 742f 6c65  //../../_root/le
> 008f4a0: 7665 6c31 5f6c 6962 2f74 6578 7475 7261  vel1_lib/textura
> 008f4b0: 2f61 7574 6f6d 6172 7461 5f74 6563 686f  /automarta_techo
> 008f4c0: 5f63 6f6c 2e70 6e67 009b b779 e2ad 56c1  _col.png...y..V.
Sybren A. Stüvel (sybren) closed this task as Archived.

Superseeded by BAT🦇

BAM has been superseded by Blender Asset Tracer (BAT). BAT supports many of the features of BAM, and is actively being developed. All open tasks regarding BAM are closed, and the project will be set to read-only. If you use BAM in your own project, please consider migrating to BAT.