Opened 10 years ago

Last modified 17 months ago

#10765 new bug

data corruption in and between text files, volume-wide

Reported by: Kev Owned by: axeld
Priority: normal Milestone: R1
Component: File Systems/BFS Version: R1/Development
Keywords: Cc: ttcoder
Blocked By: #12676 Blocking:
Platform: x86

Description

I noticed that in a plain-text file, letter.txt, I had recently worked on yesterday using StyledEdit, after upgrading to hrev47114, there was a chunk of text that stood out:

'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<

That not being part of my letter, I investigated, and found that that above sequence had replaced a chunk of my letter. Interestingly, the replaced chunk was found, intact, in the alphabetically next file in the same directory, "letter.txt copy". However, in "letter.txt copy", the intact chunk had taken over all but the last 54 bytes of the original "letter.txt copy". Both "letter.txt copy" and "letter.txt copy 2", which have the exact same modified date and size (and that may have been me hitting alt-d twice by accident back when I was working on letter.txt) but "letter.txt copy 2" had no data replaced. I hadn't experienced any StyledEdit crashes or anything. Does such a weird double-displacement mean my HD is on its way out, or is this a possible bug in Haiku? This is a file on the BFS boot volume that my Haiku nightly is running off of, without any other data corruption found yet.

Attachments (2)

syslog (266.2 KB ) - added by Kev 10 years ago.
syslog.old (512.1 KB ) - added by Kev 10 years ago.

Download all attachments as: .zip

Change History (18)

comment:1 by jessicah, 10 years ago

Out of curiosity, are you able to provide a syslog? Do you happen to be running an AMD cpu?

comment:2 by ttcoder, 10 years ago

Cc: degea@… added

comment:3 by Kev, 10 years ago

Sorry, I'm not able to provide it anymore at this point, but if it happens again, I certainly will.

I am running an AMD Sempron 64, yes. What does that mean for this?

comment:4 by Kev, 10 years ago

Quite oddly, I just had this happen (hrev 47209) with a file where it overwrote text from a file in another directory. The file it come from? Ironically, syslog. This is what my file suddenly contained, after a normal usage pattern of opening in StyledEdit, adding/changing text, saving, closing:

Say someone makes a subtle change to inventory policy, and it brERN: address 0x10ffff; pin 2; source 0x821d27f8 0; pci 0:16 pin 3 func mask 10; bios irq: 5; gsi 21; config 0x06
KERN: address 0x11ffff; pin 2; source 0x821d2738 0; pci 0:17 pin 3 func mask 20; bios irq: 5; gsi 22; config 0x06
KERN: address 0xfffff; pin 0; source 0x821d28b8 0; pci 0:15 pin 1 func mask 2; bios irq: 255; gsi 20; config 0x06
KERN: address 0xfffff; pin 1; source 0x821d28b8 0; pci 0:15 pin 2 func mask 1; bios irq: 11; gsi 20; config 0x06
KERN: address 0xffff; pin 0; GSI 16; pci 1:0 pin 1 func mask 1; bios irq: 10; gsi 16; config 0x06
KERN: found interrupt override for bus 0, source irq 0, global irq 2, flags 0x00000000
KERN: found interrupt override for bus 0, source irq 9, global irq 9, flags 0x0000000f
Kto make sure that an error message is shown when it should be.

comment:5 by Kev, 10 years ago

Summary: data corruption in and between text files in the same directorydata corruption in and between text files, volume-wide

by Kev, 10 years ago

Attachment: syslog added

by Kev, 10 years ago

Attachment: syslog.old added

comment:6 by Kev, 10 years ago

It turns out that the 728 bytes beginning with "ERN: address" and ending with "K" just before "to make sure" overwrote exactly 728 bytes of original text, when I checked with a backup I had of the file.

comment:7 by ttcoder, 10 years ago

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)

EDIT: silly me, should run it on the actually concerned partition.. Though oddly enough it does not show anything like the syslog "block already set" error:

~/Desktop> checkfs --check-only /SamZulu/
        134912 nodes checked,
        0 blocks not allocated,
        0 blocks already set,
        37 blocks could be freed

        files           117825
        directories     16494
        attributes      349
        attr. dirs      215
        indices         29

        direct block runs               132741 (6.75 GiB)
        indirect block runs             382 (in 19 array blocks, 63.68 MiB)
        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*

Last edited 10 years ago by ttcoder (previous) (diff)

comment:8 by ttcoder, 10 years ago

Priority: normalhigh

Tentatively setting to high, though since only StyledEdit seems to trigger this maybe that's over-reaching..

Edit -- for the record, whenever I see that bug it's on my Intel Core2 duo laptop, never on the AMD tower.

Edit2 -- come to think of it, I remember using the Font > Color > Blue menu to highlight a word in the StyledEdit file before saving it.. Now that's an interesting candidate for the "bug trigger", because it would explain why StyledEdit is set apart from other apps: other text editors do save attributes with the textual body, but there probably ain't too many that save "style run arrays".. So maybe it's the activation of BTextView::FlattenRunArray() and the buffer being saved with BNode::WriteAttr() that triggers the BFS oddity.. If Haiku Inc. had a computer lab full of "torture tests machines" like Be had I'd recommend adding that to the test battery :-) If somebody (Kev ?) does observe correlation with usage of the Font>Color menu that'll be interesting..

Last edited 10 years ago by ttcoder (previous) (diff)

comment:9 by jackburton, 10 years ago

Since it seems to be BTextView specific, can you check if it's been fixed in hrev47878 ?

comment:10 by ttcoder, 10 years ago

Priority: highnormal

If BTextView is the culprit, rather than a simple 'trigger', that is worth a test indeed.. The problem is that I'm in a rush with work (next release of TT) and I could not focus on this ticket even if this was on a spare computer.. let alone my main laptop here.

For what it's worth, I (hopefully) circumvented any future bug occurence by changing FileTypes so that MIME type "text" invokes Pe, not StyledEdit (this might be helpful to Kev).

Anyway, now undoing my priority change (otherwise it would be bad form to say "I want this to be fixed but I'm not willing to test!") in recognition that this is not necessarily a BFS bug.. There's a possibility that StyleEdit's entry_ref "slips" into changing another file.. though the odds of that appear slim doesn't it..

Version 0, edited 10 years ago by ttcoder (next)

comment:11 by waddlesplash, 5 years ago

Has anyone seen this since?

comment:12 by ttcoder, 5 years ago

Cc: ttcoder added; degea@… removed

Dunno about the O.P., but this has been completely non-reproducible from where I stand -- i.e. with StyledEdit blacklisted. No mysterious corruption in 4 years, just the occasional need to 'checkfs' to fight entropy. So seems the "work-around" is quite successful.

comment:13 by ttcoder, 4 years ago

/me wonders whether writing "styling" BFS attributes and BFS data at the same time could have some sort of relation to #15912 / hrev54101/ #12698

comment:14 by waddlesplash, 4 years ago

It's more likely the StyledEdit memory fixes mentioned above fixed it. But it's possible I suppose.

comment:15 by ttcoder, 3 years ago

It seems possible that #16605 might be related to this, though the offset of the corruption is not mentionned (is it 0x80 too ?)

comment:16 by waddlesplash, 17 months ago

Blocked By: 12676 added

Likely related to #12676, adding that here.

Note: See TracTickets for help on using tickets.