public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* usertap kernel read faults - can I ignore them somehow?
@ 2011-11-29 14:30 Matthew Ward
  2011-11-29 14:38 ` Frank Ch. Eigler
  0 siblings, 1 reply; 5+ messages in thread
From: Matthew Ward @ 2011-11-29 14:30 UTC (permalink / raw)
  To: systemtap

I'm having an issue with our usertap tapset 
(https://github.com/fubralimited/usertap) on a high-load server where 
trying to find an IP address for a particular socket is causing 
systemtap to crash out on a kernel read fault. This tapset always builds 
and runs on a low-traffic server, but after testing on one of our 
high-traffic nodes it sometimes builds and runs without a problem, and 
sometimes refuses to build at all.

There's a gist of the error we're getting here: 
https://gist.github.com/1404868. The relevant line we're getting is:

ERROR: kernel read fault at 0x0000000100000264 (addr) near identifier 
'@cast' at /usr/share/systemtap/tapset/ip.stp:45:11

I presume that that file is called/included by the usertap tapset as 
it's asking for the IP address associated with a socket, but this seems 
to be causing an error in certain situations (presumably where it's 
requesting an IP address for something that doesn't have one). Is there 
any way I can tell our systemtap script to silence or ignore the call 
for the IP address if that lookup fails, so that it will start anyway 
like it does normally?

System info:
systemtap-runtime-1.4-6.el6_1.2.x86_64
kernel-2.6.32-131.17.1.el6.x86_64

Source code for usertap:
https://github.com/fubralimited/usertap/blob/master/src/usertap.stp

---
Matthew Ward
e: matthew.ward@fubra.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: usertap kernel read faults - can I ignore them somehow?
  2011-11-29 14:30 usertap kernel read faults - can I ignore them somehow? Matthew Ward
@ 2011-11-29 14:38 ` Frank Ch. Eigler
  2011-11-29 15:00   ` Matthew Ward
  0 siblings, 1 reply; 5+ messages in thread
From: Frank Ch. Eigler @ 2011-11-29 14:38 UTC (permalink / raw)
  To: Matthew Ward; +Cc: systemtap


Hi, Matthew -

> I'm having an issue with our usertap tapset
> (https://github.com/fubralimited/usertap) [...]
> ERROR: kernel read fault at 0x0000000100000264 (addr) near identifier
> '@cast' at /usr/share/systemtap/tapset/ip.stp:45:11

You can do several things.
First, you can run "stap --skip-badvars ...", which turns all erroneous
$var accesses into 0.  Second, you can (sometimes) wrap expressions with
   try { var = $var } catch { } 
to absorb the error.  But see <http://sourceware.org/PR13306>.

- FChE

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: usertap kernel read faults - can I ignore them somehow?
  2011-11-29 14:38 ` Frank Ch. Eigler
@ 2011-11-29 15:00   ` Matthew Ward
  2011-11-29 15:02     ` Matthew Ward
  2011-11-29 17:02     ` Frank Ch. Eigler
  0 siblings, 2 replies; 5+ messages in thread
From: Matthew Ward @ 2011-11-29 15:00 UTC (permalink / raw)
  To: Frank Ch. Eigler; +Cc: systemtap

On 29/11/2011 14:38, Frank Ch. Eigler wrote:
>
> Hi, Matthew -
>
>> I'm having an issue with our usertap tapset
>> (https://github.com/fubralimited/usertap) [...]
>> ERROR: kernel read fault at 0x0000000100000264 (addr) near identifier
>> '@cast' at /usr/share/systemtap/tapset/ip.stp:45:11
>
> You can do several things.
> First, you can run "stap --skip-badvars ...", which turns all erroneous
> $var accesses into 0.  Second, you can (sometimes) wrap expressions with
>     try { var = $var } catch { }
> to absorb the error.  But see<http://sourceware.org/PR13306>.
>
> - FChE
>

Thanks, that's exactly what I was looking for. When using the 
--skip-badvars option, if I'm running the tapset as a service using 
stapio, do I pass this to /usr/bin/stap when I build the original module 
(.ko) and this will apply whenever the module version is used by stapio 
etc. from then on?

Matt.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: usertap kernel read faults - can I ignore them somehow?
  2011-11-29 15:00   ` Matthew Ward
@ 2011-11-29 15:02     ` Matthew Ward
  2011-11-29 17:02     ` Frank Ch. Eigler
  1 sibling, 0 replies; 5+ messages in thread
From: Matthew Ward @ 2011-11-29 15:02 UTC (permalink / raw)
  To: systemtap; +Cc: systemtap

On 29/11/2011 14:38, Frank Ch. Eigler wrote:
>
> Hi, Matthew -
>
>> I'm having an issue with our usertap tapset
>> (https://github.com/fubralimited/usertap) [...]
>> ERROR: kernel read fault at 0x0000000100000264 (addr) near identifier
>> '@cast' at /usr/share/systemtap/tapset/ip.stp:45:11
>
> You can do several things.
> First, you can run "stap --skip-badvars ...", which turns all erroneous
> $var accesses into 0.  Second, you can (sometimes) wrap expressions with
>     try { var = $var } catch { }
> to absorb the error.  But see<http://sourceware.org/PR13306>.
>
> - FChE
>

Thanks, that's exactly what I was looking for. When using the 
--skip-badvars option, if I'm running the tapset as a service using 
stapio, do I pass this to /usr/bin/stap when I build the original module 
(.ko) and this will apply whenever the module version is used by stapio 
etc. from then on?

Matt.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: usertap kernel read faults - can I ignore them somehow?
  2011-11-29 15:00   ` Matthew Ward
  2011-11-29 15:02     ` Matthew Ward
@ 2011-11-29 17:02     ` Frank Ch. Eigler
  1 sibling, 0 replies; 5+ messages in thread
From: Frank Ch. Eigler @ 2011-11-29 17:02 UTC (permalink / raw)
  To: Matthew Ward; +Cc: systemtap

Hi, Matthew -

> [...]  When using the --skip-badvars option, if I'm running the
> tapset as a service using stapio, do I pass this to /usr/bin/stap
> when I build the original module (.ko) and this will apply whenever
> the module version is used by stapio etc. from then on?

That's correct.

- FChE

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-11-29 15:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-29 14:30 usertap kernel read faults - can I ignore them somehow? Matthew Ward
2011-11-29 14:38 ` Frank Ch. Eigler
2011-11-29 15:00   ` Matthew Ward
2011-11-29 15:02     ` Matthew Ward
2011-11-29 17:02     ` Frank Ch. Eigler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).