init terminating in do_boot

414 views
Skip to first unread message

CGS

unread,
May 31, 2012, 11:22:13 AM5/31/12
to us...@couchdb.apache.org, d...@couchdb.apache.org
Dear lists,

I recently installed CouchDB 1.2.0 from source on CentOS 5.8 (final) with
Erlang/OTP R15B01 (installed from source with no errors at installation).
It reported no errors in configuration (not even warnings) and no errors in
make && sudo make install. Still, I keep receiving the following message
when I try to start it:

Apache CouchDB 1.2.0 (LogLevel=info) is starting.
{"init terminating in
do_boot",{{badmatch,{error,{bad_return,{{couch_app,start,[normal,["/usr/local/etc/couchdb/default.ini","/usr/local/etc/couchdb/local.ini"]]},{'EXIT',{{badmatch,{error,shutdown}},[{couch_server_sup,start_server,1,[{file,"couch_server_sup.erl"},{line,98}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,274}]}]}}}}}},[{couch,start,0,[{file,"couch.erl"},{line,18}]},{init,start_it,1,[]},{init,start_em,1,[]}]}}

couch_server_sup.erl (line 98): {ok, Pid} = supervisor:start_link({local,
couch_server_sup}, couch_server_sup, BaseChildSpecs),

No log entry.

I know it returns {error, shutdown} instead of {ok, Pid}, but my question
is how can I find what exactly is the problem there? Log level to debug
doesn't add any other info.

It's not a problem of permissions because I run couchdb as root. I used
0.0.0.0 as IP and the default values for the rest. The erl_crash.dump file
doesn't provide other information (or I miss it, so, if anyone wants to
inspect it, I can provide it).

Regards,
CGS

Robert Newson

unread,
May 31, 2012, 11:33:05 AM5/31/12
to us...@couchdb.apache.org
Are you sure couchdb's startup script isn't "su"'ing to a different
user, though?

CGS

unread,
May 31, 2012, 11:40:01 AM5/31/12
to us...@couchdb.apache.org
Very sure as I am logged in as root when I start CouchDB (the same terminal
session I used for make install which worked without any error).

CGS

Robert Newson

unread,
May 31, 2012, 11:48:34 AM5/31/12
to us...@couchdb.apache.org
I don't see how that changes the contents of our startup script (where
we do ' if su $COUCHDB_USER -c "$command"; '). If you don't have that
variable declared it won't su, but this error is so often caused by
running as the wrong user that I thought I'd mention it.

B.

CGS

unread,
May 31, 2012, 12:39:10 PM5/31/12
to us...@couchdb.apache.org
I haven't attached any COUCHDB_USER variable to my BASH session (unless the
couchdb script adds it, but I see no COUCHDB_USER in that script). So, no
'su'ing away from root.

Is there any known problem in between CouchDB and Erlang/OTP R15B01? Any
idea, downgrading Erlang version would do any good?

CGS

Dave Cottlehuber

unread,
May 31, 2012, 4:05:39 PM5/31/12
to us...@couchdb.apache.org
On 31 May 2012 18:39, CGS <cgsmc...@gmail.com> wrote:
> I haven't attached any COUCHDB_USER variable to my BASH session (unless the
> couchdb script adds it, but I see no COUCHDB_USER in that script). So, no
> 'su'ing away from root.
>
> Is there any known problem in between CouchDB and Erlang/OTP R15B01? Any
> idea, downgrading Erlang version would do any good?

No.

You might get something useful by starting 'erl -init_debug' & then to start up
erlang solo (not as couch) and then progressively start up dependent apps:

erl -init_debug -env ERL_LIBS
/usr/local/Cellar/couchdb/1.2.0/lib/couchdb/erlang/lib -couch_ini

and then:

application:load(crypto), application:start(crypto).
application:load(couch), application:start(couch).

output should resemble this (from my mac):

https://friendpaste.com/6zett3aAHSafRNZbgfMBoD

A+
Dave

CGS

unread,
May 31, 2012, 5:19:51 PM5/31/12
to us...@couchdb.apache.org
Hi Dave,

Thank you for your reply. Indeed, downgrading Erlang version didn't help,
but your suggestion helped me in finding the error. It was a path problem
(more precisely, /usr/local/lib which wasn't in LD_LIBRARY_PATH by default
under CentOS 5.8, and I had libicui18n.so.49 there). I am surprised it
didn't show the problem during running the configure script or while
compiling CouchDB, but I suppose it was added by hand in the script
searching paths. Now, CouchDB is purring like a cat. Thanks a lot from
another happy CouchDB user!

Cheers,
George

Wendall Cada

unread,
May 31, 2012, 5:51:04 PM5/31/12
to us...@couchdb.apache.org
George,

Can you share your build instructions? If you have a working install
process for Centos 5.8, I can create an rpm that could benefit others.
5.8 is problematic. I think the information could be very useful for
build-couchdb as well, as I think it isn't working currently either.

Wendall

CGS

unread,
May 31, 2012, 6:58:36 PM5/31/12
to us...@couchdb.apache.org
Hi Wendall,

Yes, of course. It's easy because I used most of the required packages form
the repository. Still, there are few packages outdated, so, I needed to
install them by hand from scratch.

The packages I had to build because being outdated in the repository: ICU,
JS (I used 1.8.0rc1, not so keen to try again with 1.8.5) and cURL. These
are all of them. Take care to the following aspects:
- ICU and cURL will be installed by default in /usr/local and
LD_LIBRARY_PATH does not contain /usr/local/lib. To add it, there are two
possibilities (not to attach any option to the configure script):
a) in BASH: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib (use
setenv for TCSH);
b) cd /usr/local/lib && for var in $(ls) ; do if [ ! -d ${var} ] ; then ln
-s /usr/local/lib/${var} /usr/lib/${var} ; fi ; done && cd - (this will
create a symbolic link for each library from /usr/local/lib in /usr/lib
which is included in standard lib path - I did that after I got that error
in do_boot, but it is better to do it from the beginning);
- JS is even worse under x86_64 architecture as it creates /usr/local/lib64
path in which it installs its libraries - do as above. To install it, use
the instructions from
http://wiki.apache.org/couchdb/Installing_SpiderMonkey(nothing more).

How to build Erlang/OTP R15B01:
- check out the prerequisite from Erlang (
http://www.erlang.org/doc/installation_guide/INSTALL.html) and 'yum
install' them all (at least I did that way and Erlang didn't complain),
except for JAVA (I don't need the connection with it), fop (requires JAVA)
and wxWidgets (I don't want to build nice windows in Erlang);
- configure Erlang: ./configure --enable-threads --enable-smp-support
--enable-kernel-poll --enable-sctp --enable-hipe
--with-dynamic-trace=systemtap --without-javac (in my case, it complained
about not finding dtrace even if I declared dynamic trace as systemtap, so,
I had to discard it - nevertheless, it may be something which can be done,
I hope, but I had no time to get into it);
- build and install it: make (as simple user) and make install (as root).
This will create (if everything goes well) /usr/local/lib/erlang and few
symbolic links in /usr/local/bin, of course.

How to build CouchDB:

Check for the prerequisites on
http://git-wip-us.apache.org/repos/asf/couchdb/repo?p=couchdb.git;a=blob;f=INSTALL.Unix;hb=master(it
doesn't matter its outdated a bit, it provides with a list of what you
need). In this moment you should have ICU, cURL, JS, Erlang and OpenSSL (as
required by Erlang), so, all you need is help2man (which I yum'ed it).

Furthermore, nothing simpler: ./configure && make (as simple user) and make
install (as root).

That's all. (Well, I omitted the steps related to download and decompress
as I consider them as too obvious. :) )

Comparing to the previous versions of CouchDB (1.1.0 was my first installed
version :D), I really consider what the developers did was to have added a
V6 engine to the installing scripts. ;)

If you have problems, don't hesitate to post them here. I will help with
what I can.

Cheers,
CGS
>>> /usr/local/Cellar/couchdb/1.2.**0/lib/couchdb/erlang/lib -couch_ini
>>>
>>> and then:
>>>
>>> application:load(crypto), application:start(crypto).
>>> application:load(couch), application:start(couch).
>>>
>>> output should resemble this (from my mac):
>>>
>>> https://friendpaste.com/**6zett3aAHSafRNZbgfMBoD<https://friendpaste.com/6zett3aAHSafRNZbgfMBoD>
>>>
>>> A+
>>> Dave
>>>
>>>
>

Wendall Cada

unread,
May 31, 2012, 8:20:31 PM5/31/12
to us...@couchdb.apache.org
Fantastic, thank you. I have an updated package for JS 1.8.5. Looks like
I'll need to create packages for ICU and cURL.

I've been avoiding working out the details, will let you know when I
have packages that will install :)

Wendall

On 05/31/2012 03:58 PM, CGS wrote:
> Hi Wendall,
>
> Yes, of course. It's easy because I used most of the required packages form
> the repository. Still, there are few packages outdated, so, I needed to
> install them by hand from scratch.
>
> The packages I had to build because being outdated in the repository: ICU,
> JS (I used 1.8.0rc1, not so keen to try again with 1.8.5) and cURL. These
> are all of them. Take care to the following aspects:
> - ICU and cURL will be installed by default in /usr/local and
> LD_LIBRARY_PATH does not contain /usr/local/lib. To add it, there are two
> possibilities (not to attach any option to the configure script):
> a) in BASH: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib (use
> setenv for TCSH);
> b) cd /usr/local/lib&& for var in $(ls) ; do if [ ! -d ${var} ] ; then ln
> -s /usr/local/lib/${var} /usr/lib/${var} ; fi ; done&& cd - (this will
> Furthermore, nothing simpler: ./configure&& make (as simple user) and make

CGS

unread,
May 31, 2012, 8:41:37 PM5/31/12
to us...@couchdb.apache.org
Let us know about your progress. Who knows, maybe others are interested in
those RPM's. :)

If you need more details or if you have any problem during the
installation, let me know. I started to like CentOS and it became my
favorite after Ubuntu (which is my favorite since years). The problem with
CentOS is its outdated packages (CouchDB is in the repository with version
1.0.2 with Erlang/OTP R12B... :( ) and missing nice applications (like Yaws
which I managed to install it from source with its latest version on the
same Erlang version). But that is not a point to discuss it here.

CGS





On Fri, Jun 1, 2012 at 2:20 AM, Wendall Cada <wend...@83864.com> wrote:

> Fantastic, thank you. I have an updated package for JS 1.8.5. Looks like
> I'll need to create packages for ICU and cURL.
>
> I've been avoiding working out the details, will let you know when I have
> packages that will install :)
>
> Wendall
>
>
> On 05/31/2012 03:58 PM, CGS wrote:
>
>> Hi Wendall,
>>
>> Yes, of course. It's easy because I used most of the required packages
>> form
>> the repository. Still, there are few packages outdated, so, I needed to
>> install them by hand from scratch.
>>
>> The packages I had to build because being outdated in the repository: ICU,
>> JS (I used 1.8.0rc1, not so keen to try again with 1.8.5) and cURL. These
>> are all of them. Take care to the following aspects:
>> - ICU and cURL will be installed by default in /usr/local and
>> LD_LIBRARY_PATH does not contain /usr/local/lib. To add it, there are two
>> possibilities (not to attach any option to the configure script):
>> a) in BASH: export LD_LIBRARY_PATH=$LD_LIBRARY_**PATH:/usr/local/lib (use
>> setenv for TCSH);
>> b) cd /usr/local/lib&& for var in $(ls) ; do if [ ! -d ${var} ] ; then ln
>> -s /usr/local/lib/${var} /usr/lib/${var} ; fi ; done&& cd - (this will
>>
>> create a symbolic link for each library from /usr/local/lib in /usr/lib
>> which is included in standard lib path - I did that after I got that error
>> in do_boot, but it is better to do it from the beginning);
>> - JS is even worse under x86_64 architecture as it creates
>> /usr/local/lib64
>> path in which it installs its libraries - do as above. To install it, use
>> the instructions from
>> http://wiki.apache.org/**couchdb/Installing_**SpiderMonkey(nothing<http://wiki.apache.org/couchdb/Installing_SpiderMonkey%28nothing>more).
>>
>>
>> How to build Erlang/OTP R15B01:
>> - check out the prerequisite from Erlang (
>> http://www.erlang.org/doc/**installation_guide/INSTALL.**html<http://www.erlang.org/doc/installation_guide/INSTALL.html>)
>> and 'yum
>> install' them all (at least I did that way and Erlang didn't complain),
>> except for JAVA (I don't need the connection with it), fop (requires JAVA)
>> and wxWidgets (I don't want to build nice windows in Erlang);
>> - configure Erlang: ./configure --enable-threads --enable-smp-support
>> --enable-kernel-poll --enable-sctp --enable-hipe
>> --with-dynamic-trace=systemtap --without-javac (in my case, it complained
>> about not finding dtrace even if I declared dynamic trace as systemtap,
>> so,
>> I had to discard it - nevertheless, it may be something which can be done,
>> I hope, but I had no time to get into it);
>> - build and install it: make (as simple user) and make install (as root).
>> This will create (if everything goes well) /usr/local/lib/erlang and few
>> symbolic links in /usr/local/bin, of course.
>>
>> How to build CouchDB:
>>
>> Check for the prerequisites on
>> http://git-wip-us.apache.org/**repos/asf/couchdb/repo?p=**
>> couchdb.git;a=blob;f=INSTALL.**Unix;hb=master(it<http://git-wip-us.apache.org/repos/asf/couchdb/repo?p=couchdb.git;a=blob;f=INSTALL.Unix;hb=master%28it>
>>>>> /usr/local/Cellar/couchdb/1.2.****0/lib/couchdb/erlang/lib -couch_ini
>>>>>
>>>>>
>>>>> and then:
>>>>>
>>>>> application:load(crypto), application:start(crypto).
>>>>> application:load(couch), application:start(couch).
>>>>>
>>>>> output should resemble this (from my mac):
>>>>>
>>>>> https://friendpaste.com/****6zett3aAHSafRNZbgfMBoD<https://friendpaste.com/**6zett3aAHSafRNZbgfMBoD>
>>>>> <https:/**/friendpaste.com/**6zett3aAHSafRNZbgfMBoD<https://friendpaste.com/6zett3aAHSafRNZbgfMBoD>
>>>>> >
>>>>>
>>>>> A+
>>>>> Dave
>>>>>
>>>>>
>>>>>
>
Reply all
Reply to author
Forward
0 new messages