On Sep 16, 2009, at 8:44 AM, Jan Lehnardt wrote:
On 16 Sep 2009, at 14:21, Adam Kocoloski wrote:
On Sep 16, 2009, at 4:00 AM, Brian Candler wrote:
Does this make any sense to you? It looks like it's reading
couch.beam from
couch-0.11.0a815641 (correct), but couch.app from
couch-0.9.0a767213 (?!).
Bingo, there's the problem. It looks like Erlang's code loader
wasn't prepared for double-digit minor versions, and it considers
0.9.* as newer than 0.1* (including 0.10 and 0.11).
This may be a serious problem for the 0.10 release, as anyone who
upgrades from 0.9.x to 0.10.0 using the same install prefix may end
up with a crash. Thanks again,
We had this popping up on IRC today, again. I agree this is serious.
Is there anything we can do on install time that checks for older
versions?
After some more thought I realized that this isn't a problem for
0.10. In 0.10 we use the old startup procedure that explicitly adds
individual ebin directories to the code path. In trunk we switched to
adding the entire PREFIX/lib/couchdb/erlang/lib directory to ERL_LIBS,
and thus triggered the issue with the code loader and our versioning
system.
I'll have to think a bit more about the best way to fix trunk. We can
always revert to the old way of adding directories explicitly with -
pa, but I hope we can find a better solution.
Adam