qpid crash using Java JNI and OpenMAMA 2.3.0


Guy <guy.tal@...>
 

Hi all,

I have OpenMAMA 2.3.0 Java Publisher along with Qpid proton 0.5 which keeps crashing when publishing for a mamalistenc client.
I haven't had that before with other bridges. When I run it for some time I get a crash on the native part of the code (see below).
From what I understand it has to do with adding an array of messages to the payload.
Has anyone seen such a crash, and what could be a cause for that?

A complete log is attached as zip file.

Log excerpt:

Stack: [0x1d090000,0x1d0e0000], sp=0x1d0dee7c, free space=315k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [qpid-proton.dll+0x53dd]
C [qpid-proton.dll+0x4a32]
C [qpid-proton.dll+0x8acb]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J com.wombat.mama.MamaMsg.addArrayMsg(Ljava/lang/String;I[Lcom/wombat/mama/MamaMsg;)V
J com.tick42.mamaplayback.mama.MamaSymbolPublisher$1.onField(Lcom/tick42/wombat/mama/MamaMsg;Lcom/tick42/wombat/mama/MamaMsgField;Lcom/tick42/wombat/mama/MamaDictionary;Ljava/lang/Object;)V
J com.tick42.wombat.mama.MamaMsg.iterateFields(Lcom/tick42/wombat/mama/MamaMsgFieldIterator;Lcom/tick42/wombat/mama/MamaDictionary;Ljava/lang/Object;)V
J com.tick42.mamaplayback.mama.MamaSymbolPublisher.send(Lcom/tick42/wombat/mama/MamaMsg;)V
J com.tick42.mamaplayback.CannedSource.executeCommand(Lcom/tick42/mamaplayback/DataCommand;Z)V
J com.tick42.mamaplayback.CommandProcessor$2.run()V
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub

Thanks
Guy - Tick42


Frank Quinn <fquinn@...>
 

Hi Guy,

Can you try the attached patch for the qpid payload bridge and see if that helps matters?

It was part of an earlier patch which was placed on hold but I may submit it independently. It fixes a realloc bug for vectors in the qpid bridge where newly appended memory is not NULL initialized (i.e. you should only see it when you publish a MAMA Msg vector, then attempt to publish a larger vector... and only sometimes).

If it still fails, can you recreate with the native replay tools or does this only manifest itself in Java?

Was the playback file one of ours or your own? If it's your own, could you put it somewhere we can download and try and recreate?

Cheers,
Frank

-----Original Message-----
From: openmama-dev-bounces@lists.openmama.org [mailto:openmama-dev-bounces@lists.openmama.org] On Behalf Of Guy
Sent: 28 April 2014 15:36
To: openmama-dev@lists.openmama.org
Subject: [Openmama-dev] qpid crash using Java JNI and OpenMAMA 2.3.0

Hi all,

I have OpenMAMA 2.3.0 Java Publisher along with Qpid proton 0.5 which keeps crashing when publishing for a mamalistenc client.
I haven't had that before with other bridges. When I run it for some time I get a crash on the native part of the code (see below).
From what I understand it has to do with adding an array of messages to the payload.
Has anyone seen such a crash, and what could be a cause for that?

A complete log is attached as zip file.

Log excerpt:

Stack: [0x1d090000,0x1d0e0000], sp=0x1d0dee7c, free space=315k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [qpid-proton.dll+0x53dd] C [qpid-proton.dll+0x4a32] C [qpid-proton.dll+0x8acb]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J com.wombat.mama.MamaMsg.addArrayMsg(Ljava/lang/String;I[Lcom/wombat/mama/MamaMsg;)V
J
com.tick42.mamaplayback.mama.MamaSymbolPublisher$1.onField(Lcom/tick42/wombat/mama/MamaMsg;Lcom/tick42/wombat/mama/MamaMsgField;Lcom/tick42/wombat/mama/MamaDictionary;Ljava/lang/Object;)V
J
com.tick42.wombat.mama.MamaMsg.iterateFields(Lcom/tick42/wombat/mama/MamaMsgFieldIterator;Lcom/tick42/wombat/mama/MamaDictionary;Ljava/lang/Object;)V
J
com.tick42.mamaplayback.mama.MamaSymbolPublisher.send(Lcom/tick42/wombat/mama/MamaMsg;)V
J
com.tick42.mamaplayback.CannedSource.executeCommand(Lcom/tick42/mamaplayback/DataCommand;Z)V
J com.tick42.mamaplayback.CommandProcessor$2.run()V
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub

Thanks
Guy - Tick42
________________________________________________________

This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange Group, Inc. (ICE), NYSE Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
________________________________________________________


Guy <guy.tal@...>
 

Thanks Frank,

I will apply that now and see if it works.
I seen this issue only with java tool.
The playback file along with the playback tool are both internal implementation.

Regards,
Guy

On 4/29/2014 12:22 PM, Frank Quinn wrote:
Hi Guy,

Can you try the attached patch for the qpid payload bridge and see if that helps matters?

It was part of an earlier patch which was placed on hold but I may submit it independently. It fixes a realloc bug for vectors in the qpid bridge where newly appended memory is not NULL initialized (i.e. you should only see it when you publish a MAMA Msg vector, then attempt to publish a larger vector... and only sometimes).

If it still fails, can you recreate with the native replay tools or does this only manifest itself in Java?

Was the playback file one of ours or your own? If it's your own, could you put it somewhere we can download and try and recreate?

Cheers,
Frank

-----Original Message-----
From: openmama-dev-bounces@lists.openmama.org [mailto:openmama-dev-bounces@lists.openmama.org] On Behalf Of Guy
Sent: 28 April 2014 15:36
To: openmama-dev@lists.openmama.org
Subject: [Openmama-dev] qpid crash using Java JNI and OpenMAMA 2.3.0

Hi all,

I have OpenMAMA 2.3.0 Java Publisher along with Qpid proton 0.5 which keeps crashing when publishing for a mamalistenc client.
I haven't had that before with other bridges. When I run it for some time I get a crash on the native part of the code (see below).
From what I understand it has to do with adding an array of messages to the payload.
Has anyone seen such a crash, and what could be a cause for that?

A complete log is attached as zip file.

Log excerpt:

Stack: [0x1d090000,0x1d0e0000], sp=0x1d0dee7c, free space=315k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [qpid-proton.dll+0x53dd] C [qpid-proton.dll+0x4a32] C [qpid-proton.dll+0x8acb]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J com.wombat.mama.MamaMsg.addArrayMsg(Ljava/lang/String;I[Lcom/wombat/mama/MamaMsg;)V
J
com.tick42.mamaplayback.mama.MamaSymbolPublisher$1.onField(Lcom/tick42/wombat/mama/MamaMsg;Lcom/tick42/wombat/mama/MamaMsgField;Lcom/tick42/wombat/mama/MamaDictionary;Ljava/lang/Object;)V
J
com.tick42.wombat.mama.MamaMsg.iterateFields(Lcom/tick42/wombat/mama/MamaMsgFieldIterator;Lcom/tick42/wombat/mama/MamaDictionary;Ljava/lang/Object;)V
J
com.tick42.mamaplayback.mama.MamaSymbolPublisher.send(Lcom/tick42/wombat/mama/MamaMsg;)V
J
com.tick42.mamaplayback.CannedSource.executeCommand(Lcom/tick42/mamaplayback/DataCommand;Z)V
J com.tick42.mamaplayback.CommandProcessor$2.run()V
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub

Thanks
Guy - Tick42
________________________________________________________

This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange Group, Inc. (ICE), NYSE Euronext or any of their subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
________________________________________________________