Opened 13 years ago
Closed 11 years ago
#7785 closed bug (fixed)
[EXRTranslator] translator causes BeOS built apps to crash
Reported by: | deejam | Owned by: | korli |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Add-Ons/Translators/EXR | Version: | R1/Development |
Keywords: | Cc: | mdisreali@… | |
Blocked By: | Blocking: | #8401, #10261 | |
Platform: | All |
Description
When changing the skin in CL-Amp the program crashes. The problem started with hrev39571. As discussed on Haikuware, this affects more software than just CL-Amp.
This is on r1a3, but it can be reproduced from hrev39571 until (at least) the current revision.
How to reproduce the problem
- Download CL-Amp_v371_x86-inc-skin.zip (attached).
- Unzip to preferred location.
- Start CL-Amp.
- Press alt+s (opens the Skin selector).
- Select Nucleo NLog v102 .wsz.
CL-Amp crashes (see attached debug.txt).
- Make a backup of /boot/system/add-ons/Translators/EXRTranslator.
- Replace /boot/system/add-ons/Translators/EXRTranslator with EXRTranslator-hrev39570 (attached).
- Perform steps 3-5 (CL-Amp will not crash).
- Replace /boot/system/add-ons/Translators/EXRTranslator with EXRTranslator-hrev39571 (attached).
- Perform steps 3-5 (CL-Amp will crash).
Thanks to hey68you who discovered that changing to an older EXRTranslator solves the problem.
Attachments (4)
Change History (21)
by , 13 years ago
Attachment: | CL-Amp_v371_x86-inc-skin.zip added |
---|
comment:2 by , 13 years ago
Also happens with Opera for BeOS ( http://pulkomandy.lexinfo.fr/~beosarchive/www.emupt.com/beos/o/WORKING/Opera_for_BeOS_Installer-Final.bin , chmod+x the installer to run it)
Crashes in the same place :
#0 0x00b4a464 in __class_type_info::dcast () from /boot/system/lib/libroot.so #1 0x00b4a471 in __class_type_info::dcast () from /boot/system/lib/libroot.so #2 0x00b4aca6 in __throw_type_match_rtti () from /boot/system/lib/libroot.so #3 0x00b48451 in __cplus_type_matcher () from /boot/system/lib/libroot.so #4 0x00b46bf4 in __eh_rtime_match () from /boot/system/lib/libroot.so #5 0x02026547 in EXRTranslator::DerivedIdentify () from /boot/system/add-ons/Translators/EXRTranslator #6 0x02027d45 in BaseTranslator::BitsIdentify () from /boot/system/add-ons/Translators/EXRTranslator #7 0x02027db4 in BaseTranslator::Identify () from /boot/system/add-ons/Translators/EXRTranslator #8 0x0071251c in BTranslatorRoster::Private::Identify () from /boot/system/lib/libtranslation.so #9 0x0071503d in BTranslatorRoster::Translate () from /boot/system/lib/libtranslation.so #10 0x0070e820 in BTranslationUtils::GetBitmap () from /boot/system/lib/libtranslation.so #11 0x003bc860 in OSplashView::AttachedToWindow () #12 0x005eb224 in BView::_Attach () from /boot/system/lib/libbe.so #13 0x005e7c69 in BView::_AddChild () from /boot/system/lib/libbe.so #14 0x005e7b01 in BView::AddChild () from /boot/system/lib/libbe.so #15 0x005edd47 in BWindow::AddChild () from /boot/system/lib/libbe.so #16 0x003bcd39 in ODoSplash () #17 0x00324348 in ShowSplashScreen () #18 0x002dfb9c in WinMain () #19 0x003abd8a in WApplication::MessageReceived () #20 0x00b50327 in thread_entry () from /boot/system/lib/libroot.so #21 0x78033fec in ?? ()
comment:3 by , 13 years ago
Looked into it a little....oddly enough, simply replacing libilmimf.so with a debug build makes this problem magically go away. Leaving that one as a release build but adding in a debug version of EXRTranslator still results in the above backtrace, but indicates that frame 5 is at the return B_OK line at the end of that function. Quite curious.
comment:4 by , 13 years ago
Noticed this happens with Sawteeth 1.2 (compiled under BeOS), but not a trunk build compiled under Haiku. There weren't too much changes in the code in between. So this only affects software built on BeOS.
follow-up: 7 comment:5 by , 13 years ago
This is a problem for any BeOS app using the translation kit. I sugest we stop providing this translator for gcc2.
comment:6 by , 13 years ago
Blocked By: | 1259 added |
---|
comment:7 by , 13 years ago
Replying to pulkomandy:
This is a problem for any BeOS app using the translation kit. I sugest we stop providing this translator for gcc2.
So these issues are caused by the weak-signal support that was added in hrev39571?
If EXRTranslator is the only problem translator, then yes, it is reasonable for it to be excluded from gcc2 and gcc2-hybrid images.
comment:8 by , 13 years ago
Cc: | added |
---|---|
Summary: | [EXRTranslator] CL-Amp crashes on skin change → [EXRTranslator] translator causes BeOS built apps to crash |
Version: | R1/alpha3 → R1/Development |
comment:9 by , 13 years ago
Blocking: | 8401 added |
---|
comment:10 by , 12 years ago
It also makes NetPenguin 1.64 (a graphical FTP client for BeOS) crash on startup, using Haiku R1A4.1.
comment:11 by , 12 years ago
hrev45692. This bug still occurs. If i attempt to run an old BeOS app (eg Netpenguin) it will crash due EXRTranslator. If i remove EXRTranslator from /boot/system/add-ons/Translators Netpenguin will properly start.
follow-up: 14 comment:12 by , 11 years ago
Given that the crash happens in the dynamic cast code, this is probably caused by an uninitialized type info. #1259 explains how this is possible. In this case we're talking about the std::exception
type info, respectively the one of the derived class (if any) that is actually caught in EXRTranslator::DerivedIdentify()
.
comment:13 by , 11 years ago
Blocking: | 10261 added |
---|
comment:14 by , 11 years ago
Replying to bonefish:
Given that the crash happens in the dynamic cast code, this is probably caused by an uninitialized type info. #1259 explains how this is possible. In this case we're talking about the
std::exception
type info, respectively the one of the derived class (if any) that is actually caught inEXRTranslator::DerivedIdentify()
.
Question: Would using "catch (...)" instead of "catch (const std::exception &e)" help to avoid using std::exception
type info (provided it's not used anywhere else which I doubt)?
comment:16 by , 11 years ago
Blocked By: | 1259 removed |
---|
comment:17 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I wasn't aware of the ticket, and found out BeOS apps crash this way when testing some PKGs, NetPenguin in my case. I seem to have had the same idea as korli in comment:14 and it does indeed fix the crash. At least I can run NetPenguin now on an image with this change. Closing ticket, please re-open if some apps still crash, or my testing has mislead me to believe the issue is fixed... I know it is not satisfying that what is probably the real bug (#1259) is not fixed.
Fixed in hrev46924.
Cl-Amp incl. the Nucleo NLog skin