[haiku-bugs] Re: [Haiku] #10765: data corruption in and between text files, volume-wide

  • From: "ttcoder" <trac@xxxxxxxxxxxx>
  • Date: Wed, 17 Sep 2014 10:32:45 -0000

#10765: data corruption in and between text files, volume-wide
--------------------------------+----------------------------
   Reporter:  Kev               |      Owner:  axeld
       Type:  bug               |     Status:  new
   Priority:  normal            |  Milestone:  R1
  Component:  File Systems/BFS  |    Version:  R1/Development
 Resolution:                    |   Keywords:
 Blocked By:                    |   Blocking:
Has a Patch:  0                 |   Platform:  x86
--------------------------------+----------------------------

Comment (by ttcoder):

 Just occured to me today, or yesterday. Hadn't seen that in over a year.
 StyledEdit was involved again.. Not sure what's special about it that
 makes it trigger this BFS bug, whereas no other app does..

 Note -- this is my main dev machine so I won't be able to keep it "as is"
 for forensics very long, I have to restore the files soon..

 Syslog -- mentions `block already set!`:

 {{{
 KERN: intel_extreme accelerant:CALLED status_t intel_get_edid_info(void *,
 long unsigned int, uint32 *)
 Last message repeated 1 time
 KERN: Last message repeated 2 times.
 Last message repeated 2 times
 KERN: slab memory manager: created area 0xd4001000 (21959)
 KERN: slab memory manager: created area 0xf0001000 (21962)
 KERN: slab memory manager: created area 0xd4801000 (21971)
 KERN: block 36896685 is already set!!!
 KERN: bfs: KERN: direct: block_run(562, 65453, 1): blocks 36896685 -
 36896685 are already set!
 KERN: slab memory manager: created area 0xf0801000 (21978)
 KERN: slab memory manager: created area 0xd5001000 (21985)
 KERN: slab memory manager: created area 0xf1001000 (21992)
 KERN: slab memory manager: created area 0xd5801000 (21999)
 KERN: block 36896685 is already set!!!
 KERN: bfs: direct: block_run(562, 65453, 1): blocks 36896685 - 36896685
 are already set!
 KERN: intel_extreme accelerant:CALLED status_t intel_get_edid_info(void *,
 long unsigned int, uint32 *)

 }}}


 checkfs mentions things, but seemingly not relevant to the involved files:

 {{{
 ~/Desktop> checkfs --check-only /boot
 DayTracker-0.0-1-x86_gcc2.hpkg (inode = 1638255), some blocks weren't
 allocated
 activated-packages (inode = 10026999), some blocks weren't allocated
 activated-packages (inode = 7077851), has blocks already set
         6084 nodes checked,
         5 blocks not allocated,
         1 blocks already set,
         24 blocks could be freed

         files           4684
         directories     1093
         attributes      183
         attr. dirs      96
         indices         28

         direct block runs               7707 (86.92 GiB)
         indirect block runs             739 (in 51 array blocks, 36.35
 GiB)
         double indirect block runs      0 (in 0 array blocks, 0 bytes)
 }}}



 inodes listing (I remember seeing that in a message from Axel, so might as
 well provide it here):

 {{{
 /SamZulu/_BedRock/develop/TTSystems/ArmyKnife_TTE> ls -i App.cpp
 2627647 App.cpp

 /SamZulu/_BedRock/develop/TTSystems/_repo_cdegea.free.fr_> ls -i _TODO___
 2628486 _TODO___
 }}}

 Here's the files involved; the stylededit file is slightly corrupted in
 the end, but the armyknife App.cpp file is in a sorry state, 99% lost (got
 a recent backup fortunately):

 {{{
 /SamZulu/_BedRock/develop/TTSystems/_repo_cdegea.free.fr_> hd _TODO___ |
 tail -12
 000007d0   78 70 69 72 61 74 69 6f  6e 0a 0a 0a 52 6f 75 74
 xpiration...Rout
 000007e0   69 6e 65 73 3a 0a 0a 66  6f 72 20 65 61 63 68 20
 ines:..for.each.
 000007f0   66 20 69 6e 20 2e 0a 64  6f 0a 09 72 65 73 65 74
 f.in...do..reset
 00000800   0a 2f 2f 20 6c 69 62 62  65 2e 73 6f 0a 23 69 6e
 .//.libbe.so.#in
 00000810   63 6c 75 64 65 20 3c 61  70 70 2f 41 70 70 6c 69
 clude.<app/Appli
 00000820   63 61 74 69 6f 6e 2e 68  3e 0a 23 69 6e 63 6c 75
 cation.h>.#inclu
 00000830   64 65 20 3c 61 70 70 2f  4d 65 73 73 61 67 65 2e
 de.<app/Message.
 00000840   68 3e 0a 23 69 6e 63 6c  75 64 65 20 3c 69 6e 74
 h>.#include.<int
 00000850   65 72 66 61 63 65 2f 41  6c 65 72 74 2e 68 3e 0a
 erface/Alert.h>.
 00000860   23 69 6e 63 6c 75 64 65  20 3c 73 75 70 70 6f 72
 #include.<suppor
 00000870   74 2f 44 65 62 75 67 2e  68 3e 0a 23 69 6e 63 6c
 t/Debug.h>.#incl

 /SamZulu/_BedRock/develop/TTSystems/_repo_cdegea.free.fr_>
 }}}


 {{{
 /SamZulu/_BedRock/develop/TTSystems/ArmyKnife_TTE> hd App.cpp
 00000000   20 70 77 64 3a 0a 09 61  64 64 61 74 74 72 20 24
 .pwd:..addattr.$
 00000010   66 20 74 74 61 64 6d 69  6e 3a 70 77 64 20 22 22
 f.ttadmin:pwd.""
 00000020   0a 0a 09 4f 52 20 73 65  74 20 69 74 20 74 6f 20
 ...OR.set.it.to.
 00000030   72 61 6e 64 6f 6d 3a 0a  09 61 64 64 61 74 74 72
 random:..addattr
 00000040   2e 2e 20 72 61 6e 64 2e  2e 0a 0a 09 4f 52 20 65
 ...rand.....OR.e
 00000050   6d 61 69 6c 20 69 74 3a  0a 09 65 6d 61 69 6c 20
 mail.it:..email.
 00000060   3c 61 64 64 79 3e 20 66  72 6f 6d 20 3c 70 77 64
 <addy>.from.<pwd
 00000070   20 66 69 65 6c 64 3e 0a  64 6f 6e 65 0a 0a 0a 0a
 .field>.done....
 00000080   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000090   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000000a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000000b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000000c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000000d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000000e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000000f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000100   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000110   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000120   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000130   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000140   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000150   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000160   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000170   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000180   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000190   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000001a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000001b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000001c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000001d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000001e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000001f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000200   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000210   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000220   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000230   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000240   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000250   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000260   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000270   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000280   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000290   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000002a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000002b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000002c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000002d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000002e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000002f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000300   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000310   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000320   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000330   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000340   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000350   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000360   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000370   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000380   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000390   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000003a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000003b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000003c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000003d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000003e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000003f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000400   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000410   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000420   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000430   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000440   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000450   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000460   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000470   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000480   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000490   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000004a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000004b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000004c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000004d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000004e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000004f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000500   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000510   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000520   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000530   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000540   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000550   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000560   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000570   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000580   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000590   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000005a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000005b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000005c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000005d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000005e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000005f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000600   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000610   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000620   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000630   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000640   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000650   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000660   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000670   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000680   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000690   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000006a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000006b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000006c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000006d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000006e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000006f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000700   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000710   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000720   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000730   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000740   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000750   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000760   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000770   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000780   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000790   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000007a0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000007b0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000007c0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000007d0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000007e0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 000007f0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 ................
 00000800   6f 67 72 61 6d 20 75 73  65 73 20 54 61 67 4c 69
 ogram.uses.TagLi
 00000810   62 20 c2 a9 20 53 63 6f  74 74 20 57 68 65 65 6c
 b....Scott.Wheel
 00000820   65 72 20 65 74 20 61 6c  2e 20 28 68 74 74 70 3a
 er.et.al..(http:
 00000830   2f 2f 74 61 67 6c 69 62  2e 67 69 74 68 75 62 2e
 //taglib.github.
 00000840   63 6f 6d 29 5c 6e 22 3b  0a 09 7d 0a 09 42 41 6c
 com)\n";..}..BAl
 00000850   65 72 74 2a 20 61 6c 65  72 74 20 3d 20 6e 65 77
 ert*.alert.=.new
 00000860   20 42 41 6c 65 72 74 28  20 22 41 62 6f 75 74 42
 .BAlert(."AboutB
 00000870   6f 78 22 2c 6d 73 67 2e  53 74 72 69 6e 67 28 29
 ox",msg.String()
 00000880   2c 20 22 4f 6b 22 20 29  3b 0a 09 61 6c 65 72 74
 ,."Ok".);..alert
 00000890   2d 3e 47 6f 28 4e 55 4c  4c 29 3b 0a 7d 0a 0a 0a
 ->Go(NULL);.}...
 000008a0   0a 69 6e 74 20 6d 61 69  6e 28 29 0a 7b 0a 09 41
 .int.main().{..A
 000008b0   70 70 6c 69 63 61 74 69  6f 6e 28 29 2e 52 75 6e
 pplication().Run
 000008c0   28 29 3b 0a 09 0a 09 72  65 74 75 72 6e 20 30 3b
 ();....return.0;
 000008d0   0a 7d 0a 0a 0a 20 20 20  20 20 20 20 20 20 20 20
 .}..............

 /SamZulu/_BedRock/develop/TTSystems/ArmyKnife_TTE>

 }}}


 '''NOTE''': the corruption ending and startpoint are at the same offset,
 that is to say offset `0x800`, interesting no ? Plus there's some
 truncation going on I think (gotta check but App.cpp was longer than its
 today's length).


 I think I'm going to blacklist StyledEdit from my system altogether.. It's
 not like this laptop is supposed to be a Quality Assurance machine running
 torture tests on Haiku *g*

--
Ticket URL: <https://dev.haiku-os.org/ticket/10765#comment:7>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: