CPPSERV


Home Projects Jobs Clientele Contact

cppserv


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

Re: Problem with starting CPPSERV



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