Closed IsmaelJS closed 1 year ago
Thank you the feedback @IsmaelJS. We will investigate and get back to you asap
Hi @IsmaelJS - I've just tried running the provided sample and am not seeing this error. We've had pickling issues in the past due to some objects in the underlying uamqp
library being incompatible. This has been fixed in uamqp>=1.3.0
.
Would you be able to provide the uamqp
package version that you're using? Thanks!
Hi @swathipil , I have updated the serialization error because the old one corresponds to azure-servicebus==7.9.0a1.
The error raised is the following:
Traceback (most recent call last):
File "test_pickle.py", line 40, in <module>
pickle.dumps(msg)
File "stringsource", line 2, in uamqp.c_uamqp.CompositeValue.__reduce_cython__
TypeError: no default __reduce__ due to non-trivial __cinit__
The lib version are:
azure-servicebus==7.8.1
uamqp==1.6.3
Thank you so much.
Hi @IsmaelJS - Can you provide an example of data sent here that results in this error?
I believe I'm not able to reproduce using this sample b/c the data I'm sending and receiving doesn't result in the creation of the uamqp.c_uamqp.CompositeValue
object and is therefore picklable.
Hi @swathipil , I have updated the code within "To Reproduce" section with the data used. Thank you so much.
is there any update about it ?
Hi @IsmaelJS - Thanks for the update and your patience! We were able to reproduce this issue.
Releasing uamqp
with the bug fix for this will take some time. However, we are currently directing our efforts toward moving azure-servicebus
away from uamqp
and to an internal Pure Python-based AMQP stack. Pickling should no longer be an issue once we've released this Pure Python-based azure-servicebus
. We plan to release a beta of this in the upcoming month and are working steadily towards a stable release.
We will keep you updated as we move forward!
Hi @IsmaelJS , @suranshu-engg-segg we will be releasing a new version of the service bus client this week that uses the pure python based AMQP library which should address the pickling issues. Ill update this issue once its on pypi
Hi @IsmaelJS, @suranshu-engg-segg - We just released azure-servicebus 7.10.0, which includes the fix for pickling ServiceBusReceivedMessage. https://pypi.org/project/azure-servicebus/7.10.0/
Thanks!
Hi @IsmaelJS. Thank you for opening this issue and giving us the opportunity to assist. We believe that this has been addressed. If you feel that further discussion is needed, please add a comment with the text "/unresolve" to remove the "issue-addressed" label and continue the conversation.
Describe the bug There is an error when trying to pickle the ServiceBusReceivedMessage object. The "prefork" pool (multiprocessing) in celery uses pickle for serialization, and from v5.2 it is not working, see details in https://github.com/celery/celery/issues/7237
To Reproduce It can be reproduced by using the following code:
The result is:
Expected behavior It should works.
Screenshots If applicable, add screenshots to help explain your problem.
Additional context There are several bugs opened in celery and billiard which might be related to this issue: https://github.com/celery/celery/issues/7237 https://github.com/celery/billiard/issues/356