Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#4125 closed defect (fixed)

Potential failure to build client classification expression evaluation code

Reported by: stephen Owned by: fdupont
Priority: very high Milestone: Kea1.0-beta
Component: build system Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description (last modified by tomek)

I had a failure building the src/lib/eval library. For some reason, when switching between two branches, the modification time of my copy of stack.hh ended up with an earlier modification time than that of parser.yy. As a result, "make" tried to run bison, which failed because my version of bison is not the version required to build the files (I'm at 2.3, the code requires V3 or later).

git does not preserve modification dates, so this problem may occur elsewhere - possibly when building from the tarball. As regenerating the lexer and parser will occur infrequently, why not remove the dependencies? Instead, make the "parser:" target unconditional so that "make parser" will always build the lexer and parser files, regardless of whether they are out of date.


Change History (11)

comment:1 Changed 4 years ago by fdupont

Two questions:

  • does this happen without the --enable-generate-parser configure option?
  • which system? (It looks like Apple OS X)

Note git and make are not very compatible: I run the git-set-file-times perl script again and again... or with other words I am a fan of Stuart Feldman, not of Linus Torvalds).
I noticed too working on #4088 bison and flex are involved even in cases I expect they should not.

comment:2 Changed 4 years ago by fdupont

IMHO the source of the problem is the *.hh files are not changed so not included in commits.

comment:3 Changed 4 years ago by fdupont

  • Owner set to stephen
  • Status changed from new to reviewing

I added a generated date comment into *.hh files so they should be no longer unchanged so be included into commits.
I suggest to check if the problem remains when #4088 will be merged.

comment:4 Changed 4 years ago by fdupont

Note the merge messed the file times so it is not yet fixed...

comment:5 Changed 4 years ago by fdupont

Unfortunately it does not work well as Jenkins doesn't use the git-set-file-times script. More, make distchek fails because parser.yy is not exported.

comment:6 Changed 4 years ago by fdupont

  • Owner changed from stephen to UnAssigned

Fixed distcheck directly in master as the problem was introduced by #4088. I am checking a solution to #4125. Should be soon available for review...
Seems to do the job: ready for review.

comment:7 Changed 4 years ago by fdupont

  • Milestone changed from Kea-proposed to Kea1.0
  • Priority changed from medium to very high

Bumped priority as this is required to build master on Jenkins but still have to be reviewed.

comment:8 Changed 4 years ago by tomek

  • Description modified (diff)
  • Owner changed from UnAssigned to tomek

comment:9 Changed 4 years ago by tomek

  • Owner changed from tomek to fdupont

I did review Francis changes and they look good. Please merge.

The code builds (also distcheck passes) on Ubuntu 14.04 x64.

Last edited 4 years ago by tomek (previous) (diff)

comment:10 Changed 4 years ago by fdupont

  • Resolution set to fixed
  • Status changed from reviewing to closed

Was merged (with success according to Jenkins). Closing.

comment:11 Changed 4 years ago by tomek

  • Milestone changed from Kea1.0 to Kea1.0-beta

Milestone renamed

Note: See TracTickets for help on using tickets.