Closed Bug 517132 Opened 13 years ago Closed 13 years ago

Assertion failure at PluginModuleParent.cpp:371

Categories

(Core :: IPC, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: cjones, Assigned: bent.mozilla)

Details

When loading this page

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

I see the failure

[NPAPIPluginChild] Init
LoadPlugin() /home/cjones/mozilla/mp-dbg/dom/plugins/testplugin/libnpipctest.so 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 http://hg.mozilla.org/projects/electrolysis/rev/cb6ed6132f0e, 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:

http://mxr.mozilla.org/projects-central/source/electrolysis/dom/plugins/testplugin/npipctest.cpp#219

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 http://hg.mozilla.org/projects/electrolysis/file/cb6ed6132f0e/dom/plugins/PluginModuleParent.cpp#l371 .

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 http://hg.mozilla.org/projects/electrolysis/rev/4fe8c1c0c231/
Status: NEW → RESOLVED
Closed: 13 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.