dtrace compiler crash compiling additional identical predicates.

Domagoj Stolfa domagoj.stolfa at gmail.com
Fri Jul 13 17:57:47 UTC 2018


Hi Ash:

I don't seem to be able to reproduce the problem from your description. Could you publish your script here?

Thanks!

—
Domagoj

> On 13 Jul 2018, at 19:54, Ash Gokhale <ashfixit at gmail.com> wrote:
> 
> While developing a long dtrace script; I seem to be tripping over a
> compiler bug. I can tickle the bug by using this in a predicate /
> self->thing_var !=  "" / one too many times. Although I use that exact
> construction many times. Changing the probe , or even providing an invalid
> probe does not change the crash. Commenting out the predicate saves the
> compile. Comparing self->var to an integer compiles ok,  ( while not really
> making sense in the context). The compiler will segv when asked to produce
> the IR  via  'dtrace -S  -ls srcipt.dt'
> Efforts to reproduce the crash with a reduced dtrace file have been futile
> and the system is sufficiently custom that sharing the script may not be
> useful.
> 
> Has anyone else seen this crash? Has anyone noticed arbitrary size limit on
> dtrace scripts?
> 
> [New LWP 103111]
> Core was generated by `dtrace -v -s drive-lifecycle.dt'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0  0x0000000800cf5910 in strchr () from /lib/libc.so.7
> 
> Thread 1 (LWP 103111):
> #0  0x0000000800cf5910 in strchr () from /lib/libc.so.7
> #1  0x000000080090999f in ctf_lookup_by_name (fp=<optimized out>,
> name=<optimized out>) at
> /usr/src/cddl/contrib/opensolaris/common/ctf/ctf_lookup.c:138
> #2  0x00000008006b8716 in dtrace_lookup_by_type (dtp=0x801644000,
> object=<optimized out>, name=0x803bc8010 "str", tip=<optimized out>) at
> /usr/src/cddl/contrib
> /opensolaris/lib/libdtrace/common/dt_module.c:1639
> #3  0x000000080069c0ce in id_or_type (s=0x803bc8010 "str") at
> /usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l:775
> #4  0x00000008006ade05 in yyparse () at dt_grammar.c:1388
> #5  0x00000008006a973f in dt_compile (dtp=<optimized out>, context=363,
> pspec=DTRACE_PROBESPEC_NAME, arg=0x0, cflags=0, argc=1, argv=0x80064c000,
> fp=<optimized
> out>, s=0x0) at
> /usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c:2457
> #6  0x00000008006aaf90 in dtrace_program_fcompile (dtp=0x803bc8fff,
> fp=0x803bc8010, cflags=114, argc=-2139062144, argv=0x3) at
> /usr/src/cddl/contrib/opensolari
> s/lib/libdtrace/common/dt_cc.c:2594
> #7  0x000000000040493f in compile_file (dcp=0x801638180) at
> /usr/src/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c:805
> #8  0x000000000040311e in main (argc=4, argv=<optimized out>) at
> /usr/src/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c:1725
> _______________________________________________
> freebsd-dtrace at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace
> To unsubscribe, send any mail to "freebsd-dtrace-unsubscribe at freebsd.org"

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.freebsd.org/pipermail/freebsd-dtrace/attachments/20180713/87846ab4/attachment.sig>


More information about the freebsd-dtrace mailing list