ABRT for Ruby
kosaki.motohiro at gmail.com
Wed Apr 18 01:44:39 UTC 2012
>> I have a question. Can we detect abrt enableness on runtime?
> I am not sure what is the best way how to detect ABRT enableness, but I can
> clarify it with upstream. Actually such checking is not required I would
> say, because:
> 1) If ABRT is not enabled, the gem cannot send the report via socket. Only
> record into /var/log/messages is made.
> 2) I would like to see Ruby in Fedora automatically to try to require
> abrt.rb and fail silently if the gem is not installed.
Hmm.. this is not an item I wanted. when abrt is disabled, ruby shouldn't
run any additional code. any new code path might make application
deadlock. for clarify, the worst scenario is, ruby or ruby extention
memory corruption and libc internal function made SEGV and then libc
lock (libc internal mutex) was not released. any libc call may makes
deadlock. and if ruby don't exit, abrt can't record correct
more importantly, crash watching daemon can't know ruby stop to
working and then fail to restart it.
>> I mean, I want to integrate it to upstream. Ruby already has
>> similar support code for Mac.
> Could you please elaborate what Mac support Ruby already has?
Ruby didn't need any additional code for Mac. Its abrt like crash logger
automatically save a crash information. we only remove redundunt code.
>> but I also want to fallback original behavior when a user disable abrt
> The original behavior is always preserved (assuming that there is no bug in
> the ABRT gem :)), i.e. the exception is written to terminal for example. The
> report to ABRT is just extension.
> With regards to SEGV, I believe that they are caught by ABRT anyway, since
> Ruby itself is C, so they should be handled by ABRT C hook. Or are you aware
> of some specific example which does not work that way?
> ruby-sig mailing list
> ruby-sig at lists.fedoraproject.org
More information about the ruby-sig