Hi Motohiro,

Thank you for your feedback.

Dne 9.7.2012 22:46, KOSAKI Motohiro napsal(a):
On Mon, Jul 9, 2012 at 9:47 AM, Vít Ondruch <[email protected]> wrote:
Hi,

Updated ABRT gem version 0.0.2 is available at RubyGems.org if you like to
test it. I'd love to hear some feedback.

There were done following changes:

* Improved code base
* Better handling of some edge cases, such as call to Kernel#exit or Ctrl+C
event
* Test suite added
* Improved documentation

I also prepared RPM for Fedora. Review is available at
https://bugzilla.redhat.com/show_bug.cgi?id=838568

  def self.report(backtrace, io = abrt_socket)
    io.write "PUT / HTTP/1.1\r\n\r\n"
    io.write "PID=#{Process.pid}\0"
    io.write "EXECUTABLE=#{$PROGRAM_NAME}\0"
Hmm..

If I understand correctly, EXECUTABLE key is used for looking up package name
from abrt daemon. Then, It should be realfilename. See below abrt doc.


abrt/doc/interpreted-languages:

EXECUTABLE
The file with the main entry point of the application. Might be a JAR
archive, a script file, a bytecode file, or the interpreter. It should
be a real file on the filesystem, so ABRT can check the origin of the
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^


However, PROGRAM_NAME can be changed from ruby scripting. e.g.
$0 = "foobar"

You are right, you can change the $PROGRAM_NAME. I'll make several points here

* Is there some more reliable way how to detect the script name?
* What is the use case and how widely is this practice used? Can we ignore this case? Python handler ignores it if I am not mistaken (but we should be better of course ;) * ABRT ignores such failure and it just logs something like "Executable 'foo.rb' doesn't belong to any package" into /var/log/messages.



    # TODO: Do we need specialized Ruby analyzer?
    # io.write "ANALYZER=Ruby\0"
    io.write "ANALYZER=Python\0"
    io.write "BASENAME=rbhook\0"
    io.write "REASON=#{backtrace.first}\0"
    io.write "BACKTRACE=#{backtrace.join("\n")}\0"
btw, I wrote a patch to redirect rb_bug() message to abrtd too.
Is it interesting for you?

https://github.com/kosaki/ruby/commit/6283017dc2747f306808ce530292dc51273746ec

I'll take a closer look later if you don't mind, but could you please elaborate the patch a bit? I know you have risen some concerns previously. What is advantage of your patch or how is it different? What scenarios it should handle and what not?

Thank you.


Vit

Reply via email to