Opened 12 years ago
Closed 12 years ago
#38395 closed defect (fixed)
couchdb-devel @1.4.0a-20130227 Erlang R16B breaks couchdb build
Reported by: | jeff@… | Owned by: | neverpanic (Clemens Lang) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.1.3 |
Keywords: | haspatch maintainer | Cc: | |
Port: | couchdb-devel couchdb |
Description
Build fails with the following after upgrading erlang to R16B, reported in #37641.
/opt/local/bin/erlc mochifmt_std.erl /opt/local/bin/erlc mochiglobal.erl mochifmt_std.erl:6: parameterized modules are no longer supported mochifmt_std.erl:11: variable 'THIS' is unbound mochifmt_std.erl:14: variable 'THIS' is unbound mochifmt_std.erl:23: variable 'THIS' is unbound make[3]: *** [mochifmt_std.beam] Error 1 make[3]: *** Waiting for unfinished jobs.... mochifmt_records.erl:12: parameterized modules are no longer supported mochifmt_records.erl:19: variable 'Recs' is unbound make[3]: *** [mochifmt_records.beam] Error 1
CouchDB ticket: https://issues.apache.org/jira/browse/COUCHDB-1696
Not sure what to do about this yet. Suggestions welcome.
This almost certainly affects couchdb as well. I'll add a note here when I've tested it and know for sure.
Attachments (3)
Change History (14)
comment:1 Changed 12 years ago by jeff@…
Changed 12 years ago by jeff@…
Attachment: | couchdb.38395.1.patch added |
---|
comment:2 Changed 12 years ago by jeff@…
Patch added for couchdb. It's hacky, but it works. Fortunately it should just be temporary until the couchdb project updates it properly. I'm working on patch for couchdb-devel now.
As always, suggestions and modifications welcome.
Changed 12 years ago by jeff@…
Attachment: | couchdb-devel.38395.1.patch added |
---|
comment:3 Changed 12 years ago by jeff@…
couchdb-devel patch added. Could somebody take a look at this and commit both these patches or give me feedback if something isn't right?
comment:4 Changed 12 years ago by neverpanic (Clemens Lang)
Owner: | changed from macports-tickets@… to cal@… |
---|---|
Status: | new → assigned |
I saw
etap_web.erl:45: Warning: call to http:request/4 will fail, since it was removed in R15B; use httpc:request/4 etap_web.erl:59: Warning: call to http:request/4 will fail, since it was removed in R15B; use httpc:request/4
scrolling by for couchdb (not in -devel), but other than that it compiles fine, so let's ship it: r104123.
comment:5 Changed 12 years ago by neverpanic (Clemens Lang)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:6 Changed 12 years ago by neverpanic (Clemens Lang)
Keywords: | haspatch maintainer added |
---|
Feel free to add the keyword maintainer
to any ticket you open for your own ports. Also, adding haspatch
when you attach a patch might help speed up things.
comment:7 Changed 12 years ago by neverpanic (Clemens Lang)
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Seems the buildbot didn't like the couchdb-devel change, although it did build fine for me locally:
/opt/local/bin/erlc -pa . mochifmt_records.erl /opt/local/bin/erlc -pa . mochifmt_std.erl mochifmt_records.erl:none: undefined parse transform 'pmod_pt' make[3]: *** [mochifmt_records.beam] Error 1 make[3]: *** Waiting for unfinished jobs.... mochifmt_std.erl:none: undefined parse transform 'pmod_pt' make[3]: *** [mochifmt_std.beam] Error 1 make[3]: Leaving directory `/opt/local/var/macports/build/_opt_mports_dports_databases_couchdb-devel/couchdb-devel/work/couchdb-devel-1.4.0a-20130227/src/moc↩ make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/opt/local/var/macports/build/_opt_mports_dports_databases_couchdb-devel/couchdb-devel/work/couchdb-devel-1.4.0a-20130227/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/opt/local/var/macports/build/_opt_mports_dports_databases_couchdb-devel/couchdb-devel/work/couchdb-devel-1.4.0a-20130227' make: *** [all] Error 2 make: Leaving directory `/opt/local/var/macports/build/_opt_mports_dports_databases_couchdb-devel/couchdb-devel/work/couchdb-devel-1.4.0a-20130227' Command failed: cd "/opt/local/var/macports/build/_opt_mports_dports_databases_couchdb-devel/couchdb-devel/work/couchdb-devel-1.4.0a-20130227" && /usr/bin/m↩ Exit code: 2 Error: org.macports.build for port couchdb-devel returned: command execution failed DEBUG: Error code: CHILDSTATUS 86766 2 DEBUG: Backtrace: command execution failed while executing "system -nice 0 $fullcmdstring" ("eval" body line 1) invoked from within "eval system $notty $nice \$fullcmdstring" invoked from within "command_exec build" (procedure "portbuild::build_main" line 8) invoked from within "$procedure $targetname" Warning: targets not executed for couchdb-devel: org.macports.activate org.macports.build org.macports.destroot org.macports.install Please see the log file for port couchdb-devel for details: /opt/local/var/macports/logs/_opt_mports_dports_databases_couchdb-devel/couchdb-devel/main.log To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets Error: Processing of port couchdb-devel failed
Any ideas?
comment:8 Changed 12 years ago by jeff@…
Hmm, at the moment, no. Looking at the entire buildbot log. Interesting that couchdb built ok but couchdb-devel did not. couchdb-devel is the simpler change of the two.
Changed 12 years ago by jeff@…
Attachment: | couchdb-and-couchdb-devel.38395.2.patch added |
---|
comment:9 Changed 12 years ago by jeff@…
I had one of those eureka-right-before-falling-asleep moments. I'm pretty confident we have a race condition here. I'm going to guess that there are probably four cores or better on the buildbots and that port runs make with a -j option (or something similar that would parallelize make). If those assumptions are true, then that would cause the error the buildbot encountered, as the build of mochifmt_records.erl and mochifmt_std.erl depend on the .beam file generated from the compilation of pmod_pt.erl, but it hadn't yet finished building it. I didn't see it since I'm on a dual core box and I'm guessing you are too.
Combined patch is attached that sets up simple dependency in the makefile that should make this safe for any amount of concurrency in make. (tested with -j20)
comment:10 Changed 12 years ago by neverpanic (Clemens Lang)
Yeah, that sounds reasonable. Commited in r104138 without the revbump, because the port either previously built fine (in which case we don't need to force a rebuild), or it didn't (in which case it will have to be rebuilt anyway). Let's see what the buildbot says.
comment:11 Changed 12 years ago by neverpanic (Clemens Lang)
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
And it built fine in
- https://build.macports.org/builders/buildports-snowleopard-x86_64/builds/15826 and
- https://build.macports.org/builders/buildports-mtln-x86_64/builds/3181
The Lion buildbot is currently down.
Yep, couchdb is affected too.
I'm looking into temporarily patching mochiweb using https://github.com/erlang/pmod_transform until the couchdb team makes releases with mochiweb updated.