[
https://issues.apache.org/jira/browse/QPID-8496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17267631#comment-17267631
]
Lisa Hong commented on QPID-8496:
---------------------------------
Hi [~robbie] [~orudyy],
Thanks so much for the help! I think we're most likely hitting the multi
threading problem as [~robbie] mentioned. We have another thread (besides the
container thread) to keep producing new message and when some condition is hit,
it will call the sender to send message from non-container thread.
With your hint, we have refined our thread. Say thread A is the main thread,
which will run proton container. thread B is another thread, which will produce
new messages. Here are our changes:
Before change:
* Thread A(container thread) will call sender.send(Message) within on_sendable.
* Thread B will keep produce new message and when the message is ready to send
per our business logic, it will directly call sender.send(Message) --> Here
might cause multi-threading issue
After change:
* Thread B will produce new message but not send the messages,, it will put
the message to a queue own by thread A
* Thread A(container thread) overrides the Container.process method and call
sender.send(Message) in its local process after on_sendable was triggered and
it will check sender.credit>0 before each send. (I were trying to always send
message via on_sendable, but unfortunately on_sendable is not always looped in
process(). So if new message is added in from thread B, there's no chance to
send the messages )
With the changes above, the issue is not hit after running for more than one
day. We will keep monitor the status to check whether the issue is fixed. But
please help to advice whether it is good practice. Your suggestions are highly
appreciated!
Thanks,
Lisa
> Randomly hit "unknown QBB implementation" error
> -----------------------------------------------
>
> Key: QPID-8496
> URL: https://issues.apache.org/jira/browse/QPID-8496
> Project: Qpid
> Issue Type: Bug
> Components: Broker-J
> Affects Versions: qpid-java-broker-8.0.2, qpid-java-broker-8.0.3
> Reporter: Lisa Hong
> Assignee: Alex Rudyy
> Priority: Major
> Fix For: qpid-java-broker-8.0.4
>
> Attachments: UnknownQBB_callstack, proton.log
>
>
> Hi team,
> I'm running qpid java broker with modelVersion8.0. And the client is
> qpid-proton with python. Unfortunately, my producer will randomly hit this
> "unknown QBB implementation" error thus failing with on_connection_error.
> Could you please help to advice what could be the root cause? The error call
> stack could be found from attachment.
> I'm suspending some null buffer is provided for this
> QpidByteBufferFactory.concatenate method. But I have no idea why it could
> happen. Would you please help to figure out? Thank you so much!
> *Proton client version: 0.32.0*
> *Qpid broker J version: 8.0*
> Regards,
> Lisa
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]