Opened 9 years ago

Closed 9 years ago

#7114 closed bug (fixed)

Paladin Crashes On "About Paladin"

Reported by: darkwyrm Owned by: bonefish
Priority: normal Milestone: R1
Component: System/runtime_loader Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by phoudoin)

The current development version of Paladin crashes under GCC4 hybrid hrev40237 merely by choosing About Paladin from the File menu.

(gdb) bt
#0  0x005ea72a in strcmp () from /boot/system/lib/
#1  0x01df7cff in TranslatorSettings::FindTranSetting ()
   from /boot/system/add-ons/Translators/JPEGTranslator
#2  0x01df7dd5 in TranslatorSettings::SetGetBool ()
   from /boot/system/add-ons/Translators/JPEGTranslator
#3  0x01df193b in be_jpeg_std_error ()
   from /boot/system/add-ons/Translators/JPEGTranslator
#4  0x01df2f1b in JPEGTranslator::Decompress ()
   from /boot/system/add-ons/Translators/JPEGTranslator
#5  0x01df413e in JPEGTranslator::DerivedTranslate ()
   from /boot/system/add-ons/Translators/JPEGTranslator
#6  0x01df76d2 in BaseTranslator::BitsTranslate ()
   from /boot/system/add-ons/Translators/JPEGTranslator
#7  0x01df771a in BaseTranslator::Translate ()
   from /boot/system/add-ons/Translators/JPEGTranslator
#8  0x007fc286 in BTranslatorRoster::Translate ()
   from /boot/system/lib/
#9  0x007f8f5d in BTranslationUtils::GetBitmap ()
   from /boot/system/lib/
#10 0x007f92b6 in BTranslationUtils::GetBitmap ()
   from /boot/system/lib/
#11 0x002371d5 in AboutView::AboutView ()
#12 0x00236baf in AboutWindow::AboutWindow ()
#13 0x002475ae in App::AboutRequested ()
---Type <return> to continue, or q <return> to quit---
#14 0x003a2aaa in BApplication::DispatchMessage ()
   from /boot/system/lib/
#15 0x003ad454 in BLooper::task_looper () from /boot/system/lib/
#16 0x003a3044 in BApplication::Run () from /boot/system/lib/
#17 0x0024b159 in main ()

Change History (9)

comment:1 by phoudoin, 9 years ago

I reproduce the crash too, but mine is in TranslatorSettings::LoadSettings() instead, while your is when these settings are accessed. Do you have a JPEGTranslator_settings file in your ~/config/settings folder? I've none here while having this crash.

BTW, why the 'JPG ' type is passed in GetBitmap()? AFAICT, JPEGTranslator type is 'JPEG', while JPEG2000 is 'JP2 '...

comment:2 by phoudoin, 9 years ago

Description: modified (diff)

comment:3 by phoudoin, 9 years ago

Owner: changed from nobody to phoudoin
Status: newin-progress

comment:4 by phoudoin, 9 years ago

I does it too with previous version of Paladin. I suspect some issue with runtime_loader and weak symbols support...

comment:5 by phoudoin, 9 years ago

Paladin do have a GLOBAL gSettings object, which seems to confuse runtime_loader when loading an (here, translator) add-on with same GLOBAL symbol.

And guess who also export a "gSettings" symbol? Yes, both JPEGTranslator and JPEG2000Translator does. Which, for unknown reason, are each time resolved by runtime_loader as the address of Paladin's gSettings symbol.

Which leads to the crash, as some warning trigger a lookup for "readWarning" settings in JPEGTranslator.

Last edited 9 years ago by phoudoin (previous) (diff)

in reply to:  5 comment:6 by phoudoin, 9 years ago

While the runtime_loader behavior should be verified here, I will made local these symbols in translators, which should have been in the first place.

Last edited 9 years ago by phoudoin (previous) (diff)

comment:7 by phoudoin, 9 years ago

Component: Add-Ons/Translators/JPEGSystem/runtime_loader
Owner: changed from phoudoin to bonefish
Status: in-progressassigned

Reassign, so Ingo could give a look.

comment:8 by phoudoin, 9 years ago

The crash should not happend anymore since hrev40245. The root issue still remains, I fear.

Ingo, could you give a look? I fear some image order symbol lookup issue here, but I'm not at ease with weak symbol changes yet.

comment:9 by bonefish, 9 years ago

Resolution: fixed
Status: assignedclosed
Version: R1/alpha2R1/Development

Cf. hrev40248.

Note: See TracTickets for help on using tickets.