-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stack Overflow in Client #6
Comments
Hi There, Thanks! |
I am using Dart VM 1.14.2 on 64-bit Mac, with RabbitMQ 3.6.1. |
Hmmm, it looks like the driver gets stuck trying to extract consecutive AMQP frames from the same data stream (extracted first but couldn't consume the data for the next). I will try to replicate the issue using the rabbit/dart versions you mention above. In the meantime, can you please try adding some print statements before the call to handleData? |
Thanks for the quick reply. I added the print statements that you mentioned, and the output from the Dart console is attached. Interestingly, in the capture it still shows a stack overflow, but it fails in processing the exception type, which is different than the first exception that I posted. But if I run my test again, the originally-posted exception is thrown. |
Here is another capture of the Dart console with the contents of _parsedHeader. |
Thanks for the captures. Can you also try running the same test against Rabbit 3.5.4 (or 3.5.7) |
We don't get an exception thrown when running against Rabbit 3.5.4. |
I tested with Rabbit 3.6.1 and I'm not able to reproduce the exception. :( |
I was able to reproduce the issue with rabbit 3.6.1 and pushed a923727 on master that addresses the problem. Can you try checking out the latest master and running your test against that? If everything works I will bump the version and push an updated package tomorrow |
Yes. I will try it ASAP. Thanks! On Wednesday, April 20, 2016, Achilleas Anagnostopoulos <
|
Tried the latest master, and got no exception. Thanks for the quick fix! Will be looking for the version bump. |
I am testing the performance of the dart_amqp client. I am publishing 100,000 messages in my test, and then receiving them in a separate client. I am basically using the code from your readme example, except that I added a loop to publish the messages:
`Client publisher = new Client(settings : settings);
publisher
.channel()
.then((Channel channel) {
channel.queue('logs').then((Queue q) {
My client code is exactly the same as your readme example.
When I start the publisher and then start the server, I begin to receive messages, but then, after processing 4500 messages, I get a stack overflow exception:
Unhandled exception:
Stack Overflow
#0 _startMicrotaskLoop (dart:async/schedule_microtask.dart:51)
#1 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#2 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)
#3 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#4 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)
#5 RawFrameParser.handleData (package:dart_amqp/src/protocol/io/raw_frame_parser.dart:79:9)
#6 RawFrameParser.handleData (package:dart_amqp/src/protocol/io/raw_frame_parser.dart:79:9)
#7 RawFrameParser.handleData (package:dart_amqp/src/protocol/io/raw_frame_parser.dart:79:9)
#8 RawFrameParser.handleData (package:dart_amqp/src/protocol/io/raw_frame_parser.dart:79:9)
#9 RawFrameParser.handleData (package:dart_amqp/src/protocol/io/raw_frame_parser.dart:79:9)
...
...
#10 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341)
#11 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:270)
#12 _StreamController&&_SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:744)
#13 _StreamController._add (dart:async/stream_controller.dart:616)
#14 _StreamController.add (dart:async/stream_controller.dart:562)
#15 _RawSocket._RawSocket. (dart:io-patch/socket_patch.dart:1215)
#16 _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:749)
#17 _microtaskLoop (dart:async/schedule_microtask.dart:41)
#18 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#19 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#20 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)
Am I doing something wrong here?
The text was updated successfully, but these errors were encountered: