Closed Bug 517132 Opened 14 years ago Closed 14 years ago

Assertion failure at PluginModuleParent.cpp:371


(Core :: IPC, defect)

Not set





(Reporter: cjones, Assigned: bent.mozilla)


When loading this page

    <object type="application/x-test-ipc" height="200" width="200">
      <param wmode="window"></param>

I see the failure

[NPAPIPluginChild] Init
LoadPlugin() /home/cjones/mozilla/mp-dbg/dom/plugins/testplugin/ returned 113b900
[PluginModuleParent] NP_Initialize
[NPAPIPluginChild] AnswerNP_Initialize
[PluginModuleParent] NPP_New
[NPAPIPluginChild] PPluginInstanceConstructor
(plugin args: type=application/x-test-ipc, height=200, width=200, )
[NPAPIPluginChild] _getstringidentifier
[NPAPIPluginChild] _utf8fromidentifier
[NPAPIPluginChild] _identifierisstring
[NPAPIPluginChild] _getstringidentifiers
[NPAPIPluginChild] _utf8fromidentifier
WARNING: NS_ENSURE_TRUE(ident) failed: file /home/cjones/mozilla/electrolysis/dom/plugins/PluginModuleParent.cpp, line 378
WARNING: NS_ENSURE_SUCCESS(rv, 0) failed with result 0x80070057: file /home/cjones/mozilla/electrolysis/dom/plugins/PluginModuleChild.cpp, line 698
[NPAPIPluginChild] _getvalue

Before, this caused a nasty crash from the IPDL channel code delete'ing a garbage pointer because of the error return, but that's now fixed.
Wait, what's the assertion?

Those warnings are because I added this "test" here:

But that shouldn't cause a crash.
Yeah oops, the line number changed when I cut out some code before pushing.  The assertion failing is .

Originally, this failed assertion caused an error code to be returned from that handler method, which triggered faulty error handling (freeing a garbage pointer) and a crash in the IPDL library.  This is an orthogonal bug and has been fixed.

That said, if proper error handling *were* implemented, then the child plugin process would just be killed off for triggering an error return in the parent.  So either this isn't a fatal error and PluginModuleParent::RecvNPN_UTF8FromIdentifier needs to be fixed to signal the error at the NPAPI level rather than IPDL, or that testing code is wrong and needs to removed.  I don't which is the Right Way.
Summary: Assertion failure at PluginModuleParent.cpp:378 → Assertion failure at PluginModuleParent.cpp:371
This was fixed by
Closed: 14 years ago
Depends on: LorentzBeta1
Resolution: --- → FIXED
Oops, dunno how that dependency snuck in ...
No longer depends on: LorentzBeta1
You need to log in before you can comment on or make changes to this bug.