Comment #22 on issue 17557 by pi...@google.com: Mystery crash on shutdown, related to smbios::Exception? http://code.google.com/p/chromium/issues/detail?id=17557
I don't know for sure why it works sometimes and sometimes doesn't, but I've observed weird, similar crashes running release vs debug. About RTLD_DEEPBIND, it causes a lot of problems and it may make sense to get rid of it, but we then need to address the problem it is intended to solve. The main issue is that without this flag, any symbol that chrome has will be used by the plugin before its own. Which means that if chrome defines the same symbol as the plugin, but with a different definition, the plugin will not work. It's a huge issue with the o3d plugin for example, because it uses chrome/base, though a somewhat older version, and possibly compiled with different flags. But that a huge set of symbols that are shared, and problems will ensue if it uses chrome's. However if setting this flag causes problems, it sounds like some plugins end up using the default (e.g. libc) symbols instead of chrome's, which means that: - chrome is overriding a default symbol, which I am not aware of, but is very possible AND - some data is passed from chrome to the plugin, or vice versa, that is unexpectedly used with respectively chrome's and the default implementation of the plugin. An example: say chrome overrides malloc/free, mallocs a buffer (using chrome's malloc), passes it to the plugin that calls free on it (using the default free). Now, that is not supposed to happen. NPAPI doesn't have any such API. Anything allocated by the browser passed to the plugin is supposed to be freed through NPN_MemFree. At least in theory... NPAPI is loosely defined, to there is room for interpretation everywhere (e.g. plugins calling gtk/glib functions to integrate through the browser main loop). So, I see 2 paths forward: - figure out which default symbol are overridden by chrome and leak to the plugin, see how/if we can avoid that, and keep RTLD_DEEPBIND. - remove RTLD_DEEPBIND but make sure that every single symbol in chrome except the ones that are supposed to leak are made private (objcopy ?). -- You received this message because you are listed in the owner or CC fields of this issue, or because you starred this issue. You may adjust your issue notification preferences at: http://code.google.com/hosting/settings --~--~---------~--~----~------------~-------~--~----~ Automated mail from issue updates at http://crbug.com/ Subscription options: http://groups.google.com/group/chromium-bugs -~----------~----~----~----~------~----~------~--~---