CPPSERV


Home Projects Jobs Clientele Contact

cppserv


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

Re: Problem with starting CPPSERV



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