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
<vondruch(a)redhat.com> 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/6283017dc2747f306808ce530292dc51273...
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