Bug 1131586 - Error building xorg-x11-server due a systemtap broken parser
Summary: Error building xorg-x11-server due a systemtap broken parser
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: systemtap
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Stan Cox
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-08-19 15:32 UTC by Alejandro Piñeiro
Modified: 2014-10-08 19:11 UTC (History)
9 users (show)

Fixed In Version: systemtap-2.6-2.fc19
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-10-08 19:03:12 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Alejandro Piñeiro 2014-08-19 15:32:59 UTC
Description of problem:

While trying to compile gnome-shell with jhbuild, I get the following error while compiling xwayland:

make[2]: Entering directory '/mnt/data/source/xwayland/dix'
  GEN      dtrace-dix.o
/usr/bin/dtrace:/tmp/tmp4rn09m.d:34 syntax error near:
typedef unsigned short int __u_short;

Makefile:989: recipe for target 'dtrace-dix.o' failed
make[2]: *** [dtrace-dix.o] Error 1
make[2]: Leaving directory '/mnt/data/source/xwayland/dix'
Makefile:617: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/mnt/data/source/xwayland/dix'
Makefile:760: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

I asked on Freenode #xorg-devel channel, and this was the answer:

<ajax> you have a version of systemtap's dtrace emulation installed that has a differently broken parser than the old one
<ajax> either build --without-dtrace or set DTRACE=
<ajax> eer
<ajax> DTRACE="/usr/bin/dtrace --nopyparsing"
<ajax> or backrev to older systemtap
<ajax> --no-pyparsing, even.
<apinheiro> ajax, ok, thanks will try that
<ajax> (parser was rewritten because it used regex, and parsing C with regex bad, so now it uses pyparsing, which is implemented with regex, so that's all much better)
<Jasper> pyparsing only uses regex for lexing, not parsing!
<apinheiro> ajax, should I open a bug or assume that is a collateral effect of being using f21, and that is being already managed?
devel
<ajax> apinheiro: bug against systemtap please, yeah.
<apinheiro> ajax, ok

Version-Release number of selected component (if applicable):
systemtap.x86_64                                                                                2.6-0.240.g876abb05c522.fc22 


Additional info:

This seems similar to bug 1084692, but the error message is different, so I created a new bug. Sorry for the noise if the problem is due the same reason.

Comment 1 Frank Ch. Eigler 2014-08-19 15:45:05 UTC
There was another recent FTBFS for the pyparsing-based /usr/bin/dtrace,
but can't find the bug# for it.  The workaround was to run using the old
regexp based .d parser, ie. "dtrace --nopyparsing ... FOO.d".

Stan, would you consider adding code to /usr/bin/dtrace to let it 
automagically reattempt a --no-pyparsing run in case of an error?

Comment 2 Adam Jackson 2014-09-22 14:46:12 UTC
Is this getting any love?  I'm hitting this on basically all my f21 machines now.

Comment 3 Stan Cox 2014-09-22 18:08:49 UTC
Looking at this further, but just an fyi: this works without -C (first run cpp on input file).  systemtap doesn't use the type info in the .d file; it uses the argument type info for the probe point invocation in the .c file

Comment 4 Stan Cox 2014-09-23 17:50:23 UTC
The .d file includes sys/types.h and the pyparser is not equiped to handle everything C can throw at it.  This type info is not needed as mentioned above so this patch:
1. ignores included c declarations
2. if by chance something still manages to aggravate the pyparser then we fallback to the rudimentary string pattern matcher

commit: 52cac9d8159
Skip C declarations in .d file and use string pattern matching as a fallback mechanism.

Comment 5 Fedora Update System 2014-09-25 20:35:45 UTC
systemtap-2.6-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/systemtap-2.6-2.fc19

Comment 6 Fedora Update System 2014-09-25 20:35:52 UTC
systemtap-2.6-2.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/systemtap-2.6-2.fc20

Comment 7 Fedora Update System 2014-09-25 20:36:02 UTC
systemtap-2.6-2.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/systemtap-2.6-2.fc21

Comment 8 Josh Stone 2014-09-25 20:41:10 UTC
FYI, while I referenced this bug for F19-21 updates, rawhide will actually get it when lberk does his weekly snapshot on Monday.  If there's a pressing need to build sooner, I can, but we're already a month running anyway...

Comment 9 Fedora Update System 2014-09-26 09:05:00 UTC
Package systemtap-2.6-2.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing systemtap-2.6-2.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-11553/systemtap-2.6-2.fc20
then log in and leave karma (feedback).

Comment 10 Fedora Update System 2014-10-08 19:03:12 UTC
systemtap-2.6-2.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 11 Fedora Update System 2014-10-08 19:09:42 UTC
systemtap-2.6-2.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 Fedora Update System 2014-10-08 19:11:41 UTC
systemtap-2.6-2.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.