[ https://issues.apache.org/jira/browse/QPID-2405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12906355#action_12906355 ]
Mo Morsi commented on QPID-2405: -------------------------------- This issue seems to be propagating up and causing some major breakage in the Ruby QPID binding. Case in point, try to do the following: require 'qpid' Qpid::Connection.new(TCPSocket.new('localhost', 5672)).inspect Which currently results in [BUG] Segmentation fault ruby 1.8.6 (2010-02-05) [x86_64-linux] I am running ruby-qpid via the stock RPM that ships on Fedora13 (ruby-qpid version 0.6) Qpid::Connection::inspect is segfaulting because - Qpid::Delegate::Client is a member of Qpid::Connection - Qpid::Delegate::Client attempts to interface with sasl by executing the following in the constructor (/usr/lib/ruby/site_ruby/1.8/qpid/delegates.rb:189) @saslConn = Sasl.client_new(@mechanism, @service, args[:host],@username, @password, @min_ssf, @max_ssf) Attempting to call the "to_s" method (or even the ".class" method) on @saslConn, as would occur when Qpid::Connection.inspect is invoked, results in a segfault _every time_. I haven't tried the patch above, please shout out if I can do anymore to help get this resolved. > SASL<->Ruby binding can cause seg_faults > ---------------------------------------- > > Key: QPID-2405 > URL: https://issues.apache.org/jira/browse/QPID-2405 > Project: Qpid > Issue Type: Bug > Components: Ruby Client > Affects Versions: 0.5 > Environment: Ubuntu, ruby 1.8.7, qpid 0.5 > Reporter: Sam Hendley > Assignee: Ted Ross > Fix For: 0.5 > > Attachments: sasl.patch > > > There is an issue with the sasl bindings where it returns a raw ruby VALUE > type for the sasl context. This works _UNTIL_ the ruby runtime tries to > access that variable which then causes a segfault. > This is easy to see if you try to inspect the variable at all (like print it > or ask for its class or methods). In my application, for reasons I haven't > determined yet, just having this variable on the heap meant that when an > exception occurred trying to print the exceptions message caused a seg fault. > In any case, passing back raw VALUEs to ruby code is a Bad Idea and goes > against the spec. There is a simple macro and fix for this which wraps the > returned value in a ruby object. This fixes the issue I was having and means > the deleting of the object is done automatically (instead of having a manual > free function). > I have a patch with the simple, low impact fix, really it would be better to > the extension so the sasl client is repersented as a real ruby object but > that would require atleast some client code changes. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:dev-subscr...@qpid.apache.org