CPPSERV


Home Projects Jobs Clientele Contact

cppserv


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with starting CPPSERV



One thing I probably should have mentioned. After 'run' in gdb, at the end
of debug messages it prints bunch of messages like that

[New Thread 1082132800 (LWP 6965)]
[New Thread 1090525504 (LWP 6966)]
[New Thread 1098918208 (LWP 6967)]
[New Thread 1107310912 (LWP 6968)]
[New Thread 1115703616 (LWP 6969)]

My eng.pid for this process was 6962.

> Ok, tried to run it on both trunk and cppserv-samples.
> It works as usual, prints all debug messages and opens new cppserv socket.
> On Ctl+C it gives no error messages.
>
>
>> No, that's not how you do it.
>>
>> LD_LIBRARY_PATH=debug/libui gdb --args cppserv -c engine.xml -P eng.pid
>>
>> (gdb) run
>>
>>
>>
>>
>> sergey@total-knowledge.com wrote:
>>> Here you go:
>>>
>>> [sergey@sergey trunk]$gdb --args cppserv -c engine.xml -P eng.pid
>>>
>>> (gdb)run LD_LIBRARY_PATH=debug/libui
>>> ../../cppserv/debug/src/container/cppserv -P eng.pid -c engine.xml
>>>
>>>
>>>
>>>> Again, you didn't give me exact command lines you used.
>>>>
>>>> sergey@total-knowledge.com wrote:
>>>>
>>>>> Well, when I run LD_LIBRARY_PATH= from cppserv-samples/ directory and
>>>>> try
>>>>> to call one of our sample servlets, it behaives exactly the same: the
>>>>> browser hangs. So I don't think it's related to my code.
>>>>> However when I run it in gdb I get error messages. Here is what I do:
>>>>>
>>>>> 1. Run 'gdb --args cppserv -c engine.xml -P eng.pid' in my trunk
>>>>> directory.
>>>>> 2. Run 'run LD_LIBRARY_PATH=debug/libui
>>>>> ../../cppserv/debug/src/container/cppserv -P eng.pid -c engine.xml'
>>>>> in
>>>>> gdb.
>>>>> 3. Get error message "libuu.so: cannot open shared object file: No
>>>>> such
>>>>> file or directory"
>>>>> 4. Program exited with code 01.
>>>>>
>>>>> I do have libuu.so in debug/libui directory.
>>>>>
>>>>> When I do the same operation in cppserv-samples directory, I get
>>>>> "libCommon.so: cannot open shared object file: No such file or
>>>>> directory"
>>>>> error message despite of the fact that libCommon.so does exist in
>>>>> cppserv-samples/debug/sharedata.
>>>>>
>>>>> So looks like this problem related to library pathes, maybe something
>>>>> has
>>>>> changed b/c of recent cppserv upgrade. I did try to remove "export
>>>>> LD_LIBRARY_PATH=/usr/local/lib" line from my ./.bash_profile file,
>>>>> but
>>>>> it
>>>>> didn't help either.
>>>>>
>>>>> Hopefully this info may lead to some clues.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Aah. So I was trying to diagnose wrong problem.
>>>>>> OK. cppserv is working for you then. Your problem
>>>>>> is somewhere in your code - it hangs before returning any
>>>>>> data.
>>>>>> My recommendation is to run CPPSERV under gdb
>>>>>> (gdb --args cppserv -c engine.xml -P eng.pid)
>>>>>> And see where it hangs. If you do Ctl+C when under GDB,
>>>>>> you should be able to get a stack trace.
>>>>>>
>>>>>> sergey@total-knowledge.com wrote:
>>>>>>
>>>>>>
>>>>>>> Nope, the browser just hangs when I call servlets.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Are you still getting error 503?
>>>>>>>>
>>>>>>>> sergey@total-knowledge.com wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>> OK. This is strange, I admit. Try doing netstat -an after
>>>>>>>>>> starting
>>>>>>>>>> cppserv, to see where it really is listening.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> Here is what I get after starting cppserv:
>>>>>>>>> unix  2      [ ACC ]     STREAM     LISTENING     75497
>>>>>>>>> /tmp/cppserv.sock
>>>>>>>>>
>>>>>>>>> When I start servlet in the browser, it adds:
>>>>>>>>> unix  3      [ ]         STREAM     CONNECTED     75673
>>>>>>>>> /tmp/cppserv.sock
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Another thing - did you update apache mod_cserv? sudo make
>>>>>>>>>> install
>>>>>>>>>> should take care of that.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> I did 'sudo make install' in my cppserv/ directory, got
>>>>>>>>>
>>>>>>>>> Linking mod_cserv
>>>>>>>>> Installing debug/./src/mod_cppserv/mod_cserv.so into
>>>>>>>>> //usr/lib64/apache/mod_cserv.so
>>>>>>>>>
>>>>>>>>> message, but it didn't resolve the issue.
>>>>>>>>>
>>>>>>>>> Another thing, after starting cppserv I get debug "Connecting to
>>>>>>>>> DB"
>>>>>>>>> message which is used in my uudb class' constructor, if it may
>>>>>>>>> lead
>>>>>>>>> to
>>>>>>>>> any
>>>>>>>>> clues.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> sergey@total-knowledge.com wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> I went farther with debugging this issue and I think that
>>>>>>>>>>> cppserv
>>>>>>>>>>> is
>>>>>>>>>>> listening on /tmp/cppserv.sock.
>>>>>>>>>>>
>>>>>>>>>>> First of all I confirmed that <listener> tag in engine.xml was
>>>>>>>>>>> parsed
>>>>>>>>>>> correctly. Here is the output:
>>>>>>>>>>>
>>>>>>>>>>> path = /tmp/cppserv.sock
>>>>>>>>>>> protocol = unix
>>>>>>>>>>>
>>>>>>>>>>> Then in serverconfig.cpp I put debug message in
>>>>>>>>>>> ServerConfig::GlobalContext::setListener()
>>>>>>>>>>> and found out that RequestListener::UnixAcceptor(path) called
>>>>>>>>>>> with
>>>>>>>>>>> correct
>>>>>>>>>>> path = /tmp/cppserv.sock
>>>>>>>>>>>
>>>>>>>>>>> Then I checked requestlistener.cpp'
>>>>>>>>>>> RequestListener::UnixAcceptor()
>>>>>>>>>>> and
>>>>>>>>>>> found out that
>>>>>>>>>>> int sock=socket(PF_UNIX,SOCK_STREAM,0); sock=4
>>>>>>>>>>> ret=listen(sock,MAX_BACKLOG); ret=0
>>>>>>>>>>>
>>>>>>>>>>> No exceptions were thrown, so init() was called and
>>>>>>>>>>> unsigned long flags = fcntl(sock,F_GETFL); flags=2
>>>>>>>>>>>
>>>>>>>>>>> Again, no exceptions were thrown.
>>>>>>>>>>>
>>>>>>>>>>> Any ideas?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Mmm.. So, I guess it didn't quite work with parsing.
>>>>>>>>>>>> Apparently cppserv is _not_ listening on /tmp/cppserv.sock,
>>>>>>>>>>>> since you get connection refused.
>>>>>>>>>>>>
>>>>>>>>>>>> sergey@total-knowledge.com wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> I do use Unix domain sockets:
>>>>>>>>>>>>>
>>>>>>>>>>>>> <listener protocol="unix" path="/tmp/cppserv.sock"/>
>>>>>>>>>>>>>
>>>>>>>>>>>>> I tried to create my own socket using perl script but it
>>>>>>>>>>>>> didn't
>>>>>>>>>>>>> help
>>>>>>>>>>>>> either.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Use unix domain sockets
>>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>>> From: sergey@total-knowledge.com
>>>>>>>>>>>>>> Date: Sun, 11 Mar 2007 17:39:09
>>>>>>>>>>>>>> To:"C++ Servlet Engine Discussion"
>>>>>>>>>>>>>> <cppserv@total-knowledge.com>
>>>>>>>>>>>>>> Subject: Re: Problem with starting CPPSERV
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I checked both Apache logs(/var/log/syslog and
>>>>>>>>>>>>>> /var/log/httpd/error_log)
>>>>>>>>>>>>>> In /var/log/httpd/error_log I got
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>  [error] [client 127.0.0.1] Cannot connect to CPPSERV
>>>>>>>>>>>>>> (/tmp/cppserv.sock):
>>>>>>>>>>>>>> Connection refused
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Also I tried to specify host="localhost" in <listener> with
>>>>>>>>>>>>>> no
>>>>>>>>>>>>>> luck.
>>>>>>>>>>>>>> I'm trying to find out if the parsed data actually loaded to
>>>>>>>>>>>>>> constructors,
>>>>>>>>>>>>>> but have trouble finding where this proccess takes place.
>>>>>>>>>>>>>> Can you give me some hints which classes I should check in
>>>>>>>>>>>>>> order
>>>>>>>>>>>>>> to
>>>>>>>>>>>>>> do
>>>>>>>>>>>>>> it?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Connection properties are described in engine.xml
>>>>>>>>>>>>>>> If it isn't set up right, it won't be connecting. Look at
>>>>>>>>>>>>>>> apache logs.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> sergey@total-knowledge.com wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Which means you don't have apache connecting to your
>>>>>>>>>>>>>>>>> cppserv
>>>>>>>>>>>>>>>>> instance.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hmm.. why did it happen after recent changes to
>>>>>>>>>>>>>>>> xmlserverconfig.cpp
>>>>>>>>>>>>>>>> then?
>>>>>>>>>>>>>>>> I don't think these things can be related, it worked well
>>>>>>>>>>>>>>>> before.
>>>>>>>>>>>>>>>> How can I connect apache to my cppserv instance?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Ilya A. Volynets-Evenbakh
>>>>>>>>>>>>>>> Total Knowledge. CTO
>>>>>>>>>>>>>>> http://www.total-knowledge.com
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Ilya A. Volynets-Evenbakh
>>>>>>>>>>>> Total Knowledge. CTO
>>>>>>>>>>>> http://www.total-knowledge.com
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Ilya A. Volynets-Evenbakh
>>>>>>>>>> Total Knowledge. CTO
>>>>>>>>>> http://www.total-knowledge.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>> --
>>>>>>>> Ilya A. Volynets-Evenbakh
>>>>>>>> Total Knowledge. CTO
>>>>>>>> http://www.total-knowledge.com
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> Ilya A. Volynets-Evenbakh
>>>>>> Total Knowledge. CTO
>>>>>> http://www.total-knowledge.com
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>> --
>>>> Ilya A. Volynets-Evenbakh
>>>> Total Knowledge. CTO
>>>> http://www.total-knowledge.com
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>> --
>> Ilya A. Volynets-Evenbakh
>> Total Knowledge. CTO
>> http://www.total-knowledge.com
>>
>>
>
>
>



Authoright © Total Knowledge: 2001-2008