backports.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Remington Furman <remicles2@gmail.com>
To: Johannes Berg <johannes@sipsolutions.net>, backports@vger.kernel.org
Cc: cocci <cocci@systeme.lip6.fr>
Subject: Re: Parse error with genl-const.cocci
Date: Fri, 1 Dec 2017 09:57:27 -0800	[thread overview]
Message-ID: <5c6cb44c-9e19-8cf2-8946-a9c0e08c3974@gmail.com> (raw)
In-Reply-To: <1512116859.25588.4.camel@sipsolutions.net>

Hi Johannes and Julia,

Wow, you two are great.  Thank you for the quick response.  More
notes below, including another spatch error after downgrading to
spatch 1.0.4.

On 12/01/2017 12:27 AM, Johannes Berg wrote:
 > +cocci list
 >
 > Hi,
 >
 > Looks like you made a really deep investigation here - awesome, thanks
 > for doing that!

It's the least I could do, considering the work you've put in
before me.

 > On Thu, 2017-11-30 at 21:43 -0800, Remington Furman wrote:
 >>
 >> Full log using genl-const.cocci
 >> init_defs_builtins: /usr/local/bin/../lib/coccinelle/standard.h
 >> meta: parse error:
 >>    File "./patches/0027-genl-const/genl-const.cocci", line 2, column 
10,
 >> charpos = 13
 >>    around = '__genl_const',
 >>    whole content = attribute __genl_const;
 >> [...snip callstack...]
 >
 > FWIW, the patch is pretty simple:
 >
 > @@
 > attribute __genl_const;
 > @@
 > (
 > -const struct genl_multicast_group
 > +__genl_const struct genl_multicast_group
 > |
 > -const struct genl_ops
 > +__genl_const struct genl_ops
 > )
 >
 > (yes, that's the full patch)

I had considered trying to manually apply the patch, but didn't
know what files it would touch, or if spatch would fail on other
patches later on.

 >> This is very similar to this problem:
 >> <https://www.spinics.net/lists/backports/msg04216.html>
 >> The conclusion of that thread is that the --integrate workflow is
 >> no longer supported.
 >>
 >> However, I am not using --integrate, and I am still getting
 >> errors about parsing '__genl_const'.
 >
 > Yeah this --integrate is unrelated to the problem - the problem is that
 > spatch can't parse this patch (any more).
 >
 >> Is that a bug in the patch
 >> or possibly a regression in spatch?
 >
 > I think it's a regression in spatch.

Ok, I'm glad Julia confirmed that the behavior changed between
releases.

 >> I've tried v4.14-rc2 also,
 >> but nothing older.
 >
 > That's a kernel version so not really relevant - spatch doesn't even
 > attempt to apply the changes since it can't parse them.
 >
 >> This page has a lot of great example info, and suggested that it
 >> could be a problem with my version of spatch. Specifically, that
 >> I was missing the menhir and libmenhir-ocaml-dev packages when
 >> building Coccinelle and a rebuild should help.
 >> <http://stonyslp.blogspot.com/2017/08/backport-driver.html>
 >
 > That I don't know - I've never built spatch myself.

If I remember correctly, I had to because the version in my package
manager was only 1.0.0-rc19, and that was too old for the backports
tag I checked out.  So, I chose the latest release in git.

 >> Unfortunately, I still have the same errors after running make
 >> distclean and rebuilding.
 >>
 >> I have:
 >> coccinelle $ git describe --tags
 >> 1.0.6-365-gd73c6e6
 >> coccinelle $ spatch --version
 >> spatch version 1.0.6-00365-gd73c6e6 compiled with OCaml version 4.01.0
 >> Flags passed to the configure script: [none]
 >> OCaml scripting support: yes
 >> Python scripting support: yes
 >> Syntax of regular expresssions: PCRE
 >
 > That seems reasonable as far as configuration is concerned.
 >
 >> I found this patch which describes how older versions can't
 >> handle the __genl_const changes (20150209):
 >> <https://www.spinics.net/lists/backports/msg03223.html>
 >>
 >> But, I also see commit 748116c8 from shortly after (20150507)
 >> which introduced genl-const.cocci and says only spatch 1.0.0-rc23
 >> is needed.
 >
 > Right.
 >
 >> I feel like I'm close to figuring this out, but would appreciate
 >> any help or pointers.
 >
 > Yeah I think you're pretty close.
 >
 > Can you try obtaining/building spatch 1.0.4? That definitely works for
 > me, so I think there's probably a regression in spatch somewhere
 > between 1.0.4 and the version that you're running.
 >
 > johannes

Ok, I've rebuilt with 1.0.4, and it applied genl-const.cocci just
fine.  But, later on my CPU was held at 100% for 29 minutes:

Applying SmPL patch 0079-netdev-destructor.cocci
[...waited 29 minutes...]
^CTraceback (most recent call last):
   File "./gentree.py", line 1107, in <module>
     ret = _main()
   File "./gentree.py", line 724, in _main
     logwrite=logwrite)
   File "./gentree.py", line 906, in process
     failure = apply_patches(args, "backport", source_dir, 'patches', 
bpid.target_dir, logwrite)
   File "./gentree.py", line 601, in apply_patches
     output = sprocess.communicate()[0]
   File "/usr/lib/python2.7/subprocess.py", line 791, in communicate
     stdout = _eintr_retry_call(self.stdout.read)
   File "/usr/lib/python2.7/subprocess.py", line 476, in _eintr_retry_call
     return func(*args)
KeyboardInterrupt


Any ideas there?  Perhaps I will try another release version of
spatch and report back.  Or I will update the genl-const.cocci
patch and try the latest spatch release again.

Thank you,
Remington

--
To unsubscribe from this list: send the line "unsubscribe backports" in

  parent reply	other threads:[~2017-12-01 17:57 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-01  5:43 Parse error with genl-const.cocci Remington Furman
2017-12-01  8:27 ` Johannes Berg
2017-12-01  9:18   ` [Cocci] " Julia Lawall
2017-12-01  9:29     ` Johannes Berg
2017-12-01 10:00       ` Julia Lawall
2017-12-12 15:19         ` Remington Furman
2017-12-14 15:16           ` Julia Lawall
2017-12-19  9:41             ` Johannes Berg
2018-06-25 20:33             ` Johannes Berg
2017-12-01 17:57   ` Remington Furman [this message]
2017-12-01 18:02     ` Johannes Berg
2017-12-01 18:09       ` Remington Furman
2017-12-01 23:48         ` Remington Furman
2017-12-02  7:47           ` Johannes Berg
2017-12-01 18:57       ` [Cocci] " Julia Lawall
2017-12-01 19:39         ` Johannes Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5c6cb44c-9e19-8cf2-8946-a9c0e08c3974@gmail.com \
    --to=remicles2@gmail.com \
    --cc=backports@vger.kernel.org \
    --cc=cocci@systeme.lip6.fr \
    --cc=johannes@sipsolutions.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 NNTP newsgroup(s).