[Zoo-discuss] ZOORequest class is missing

François Dodé dode.francois at gmail.com
Wed May 24 06:18:29 PDT 2017


Sorry for a reason I don't know now it's working !
Maybe I not clear all the .o files and it went wrong.
When I made a make clean all the thing worked perfectly with the patch you
gave me.

Thanks a lot for the time you spent.

Best regards

2017-05-24 14:24 GMT+02:00 François Dodé <dode.francois at gmail.com>:

> I tested but it fails somewhere else.
> In the file ulinet.c at the function named "processDownloads" the command
> below fail:
>
> *curl_multi_remove_handle(hInternet->handle,
> hInternet->ihandle[i].handle);*
>
>
> Best regards
>
> 2017-05-24 12:00 GMT+02:00 Fenoy Gerald <gerald.fenoy at geolabs.fr>:
>
>> Sorry I have forgotten the ulinet.h part in the previous patch file, here
>> it is.
>>
>>
>>
>>
>> Gérald Fenoy
>> http://wiki.osgeo.org/wiki/User:Djay
>>
>> > Le 24 mai 2017 à 11:56, Fenoy Gerald <gerald.fenoy at geolabs.fr> a écrit
>> :
>> >
>> > François,
>> > thanks for the feedbacks.
>> >
>> > Strange, the id field should never take such kind of value.
>> >
>> > You can find attached a patch that I would like to invite you to try on
>> your platform to see if it fixes the issue. In case the issue is with the
>> psInternet pointer itself, then it won’t solve anything.
>> >
>> > I hope to hear back from you.
>> >
>> > Best regards,
>> >
>> > <cookie.patch>
>> >
>> > Gérald Fenoy
>> > http://wiki.osgeo.org/wiki/User:Djay
>> >
>> >> Le 24 mai 2017 à 11:19, François Dodé <dode.francois at gmail.com> a
>> écrit :
>> >>
>> >> Gerald,
>> >>
>> >> I think the problem should be created by the function
>> header_write_data in the file ulinet.c
>> >>
>> >> In case of presence of "Set-Cookie" in the headers red, it stores the
>> cookie identifier in CCookie it's done with :
>> >> sprintf(CCookie[psInternet->id],"%s",tmp);
>> >>
>> >> And the CCookie variable is set like this :
>> >> #define MAX_REQ 50
>> >> static char CCookie[MAX_REQ][1024];
>> >>
>> >>
>> >> I logged the value of psInternet->id and this value is random. For
>> exemple I get :
>> >> [DEBUG - ulinet] Variable psInternet->id: 1041416742
>> >> And this value are not include between 0 and 50 and cause a
>> segmentation fault.
>> >>
>> >> Best regards
>> >>
>> >> 2017-05-24 10:21 GMT+02:00 François Dodé <dode.francois at gmail.com>:
>> >> Hello Gerald,
>> >>
>> >> Thank you when I set the cookie it's work but it's not expected
>> processing.
>> >> Sorry for being not clear.
>> >>
>> >> For exemple when I do the GET request with CURL it's working without
>> set a cookie in the headers request:
>> >> curl -v "http://<host>/crv/<key>/doSomething?p1=ZH&p2=ZH&p3=3&p4=46.
>> 6947&p5=-2.8564"
>> >>
>> >> Here the log :
>> >>
>> >> * About to connect() to <host> port 80 (#0)
>> >>
>> >> *   Trying xxx.xxx.xxx.xxx... connected
>> >>
>> >> * Connected to <host> (xxx.xxx.xxx.xxx) port 80 (#0)
>> >>
>> >>> GET /crv/<key>/doSomething?p1=ZH&p2=ZH&p3=3&p4=46.6947&p5=-2.8564
>> HTTP/1.1
>> >>
>> >>> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7
>> NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
>> >>
>> >>> Host: <host>
>> >>
>> >>> Accept: */*
>> >>
>> >>>
>> >>
>> >> < HTTP/1.1 200 OK
>> >>
>> >> < Server: nginx
>> >>
>> >> < Date: Wed, 24 May 2017 07:53:24 GMT
>> >>
>> >> < Content-Type: text/html; charset=utf-8
>> >>
>> >> < Vary: Accept-Encoding
>> >>
>> >> < Set-Cookie: route=abe6a29b89be7b9be8f1bf07ea11b863; Path=/
>> >>
>> >> < X-Powered-By: Express
>> >>
>> >> < Content-Length: 29
>> >>
>> >> < X-Cache: xxxxxxxx
>> >>
>> >> < X-Cache-Lookup: xxxxxxxxx
>> >>
>> >> < Connection: keep-alive
>> >>
>> >> <
>> >>
>> >> * Connection #0 to host <host> left intact
>> >>
>> >> * Closing connection #0
>> >>
>> >>
>> >>
>> >> The cookie is set in the response header and the first time I request
>> the service, no cookies are set.
>>                So in the JS file I have just to do that :
>> ZOO.Request.Get(url, params)
>> >>
>> >> But it's fails due to an segmentation fault when the ulinet set the
>> response header at line "Set-Cookie: "
>> >>
>> >> I add log in the ulinet programs for show this :
>> >>
>> >> * About to connect() to <host> port 80 (#0)
>> >>
>> >> *   Trying xxx.xxx.xxx.xxx... connected
>> >>
>> >> * Connected to <host> (xxx.xxx.xxx.xxx) port 80 (#0)
>> >>
>> >>> GET /crv/<key>/doSomething?p1=ZH&p2=ZH&p3=3&p4=46.6947&p5=-2.8564
>> HTTP/1.1
>> >>
>> >> User-Agent: ZooWPSClient
>> >>
>> >> Host: <host>
>> >>
>> >> Accept: */*
>> >>
>> >>
>> >>
>> >> < HTTP/1.1 200 OK
>> >>
>> >> [DEBUG - ulinet] In function header_write_data
>> >>
>> >> < Server: nginx
>> >>
>> >> [DEBUG - ulinet] In function header_write_data
>> >>
>> >> < Date: Wed, 24 May 2017 08:09:39 GMT
>> >>
>> >> [DEBUG - ulinet] In function header_write_data
>> >>
>> >> < Content-Type: text/html; charset=utf-8
>> >>
>> >> [DEBUG - ulinet] In function header_write_data
>> >>
>> >> < Vary: Accept-Encoding
>> >>
>> >> [DEBUG - ulinet] In function header_write_data
>> >>
>> >> * Added cookie route="abe6a29b89be7b9be8f1bf07ea11b863" for domain
>> <host>, path /, expire 0
>> >>
>> >> < Set-Cookie: route=abe6a29b89be7b9be8f1bf07ea11b863; Path=/
>> >>
>> >> [DEBUG - ulinet] In function header_write_data
>> >>
>> >> [DEBUG - ulinet] Variable tmp: route=abe6a29b89be7b9be8f1bf07ea11b863
>> >>
>> >> [DEBUG - ulinet] the line before sprintf(CCookie[psInternet->id
>> ],"",tmp);
>> >>
>> >>
>> >> I hope it's help you for understand the issue.
>> >>
>> >> Best regards
>> >>
>> >> 2017-05-23 14:01 GMT+02:00 Fenoy Gerald <gerald.fenoy at geolabs.fr>:
>> >> François,
>> >> you should try using the revision 828.
>> >>
>> >> You should consider using the new version of ZOO-API.js it contains.
>> >>
>> >> There were no support for passing any headers to GET request from the
>> js ZOO-API.
>> >>
>> >> I have modified the ZOO-API to enable this support.
>> >>
>> >> Still, note that defining conf["lenv"]["cookie"] is required only for
>> services that are supposed to produce a session environment and a linked
>> Cookie is generated and returned to the client application. So it is not
>> the way to pass headers to your requests from the js ZOO-API.
>> >>
>> >> You can use the following syntaxe from your js code:
>> >>
>> >> var i=ZOO.Request.Get("http://www.gogle.com/",{"toto":"toto"},{"Cookie":
>> "XXX=XXXXXXXX01"});
>> >>
>> >> or
>> >>
>> >> var i=ZOO.Request.Get("http://www.gogle.com/",{"toto":"toto"},["Cookie:
>> XXX=XXXXXXXX01;"]);
>> >>
>> >> I hope it helps.
>> >>
>> >> Gérald Fenoy
>> >> http://wiki.osgeo.org/wiki/User:Djay
>> >>
>> >>> Le 23 mai 2017 à 10:39, François Dodé <dode.francois at gmail.com> a
>> écrit :
>> >>>
>> >>> Hello,
>> >>>
>> >>> Thank you. I tested this revision but it fails. I have a segmentation
>> error.
>> >>> The line where the program fail is 97 :
>> >>> sprintf(CCookie[psInternet->id],"%s",tmp);
>> >>> The value in the tmp variable is correct.
>> >>>
>> >>> Maybe I do wrong when I declare the cookie in the JS file.
>> >>> In the JS file I add this line :
>> >>> conf["lenv"]["cookie"]="XXX=XXX1000000; path=/";
>> >>>
>> >>> and after that I do the ZOO.Request.Get
>> >>>
>> >>>
>> >>>
>> >>> Also in the ulinet.h, the prototype was not change to :
>> >>>
>> >>>
>> >>> bool setProxiesForProtcol(CURL*,const char*);
>> >>>
>> >>>
>> >>>
>> >>> Best regards
>> >>>
>> >>>
>> >>> 2017-05-22 21:33 GMT+02:00 Fenoy Gerald <gerald.fenoy at geolabs.fr>:
>> >>> Thanks for your feedback.
>> >>>
>> >>> The previous ulinet.c version was containing an error. Please can you
>> give revision 827 a try ?
>> >>>
>> >>> I suppose it will solve your issue.
>> >>>
>> >>> Best regards,
>> >>>
>> >>>
>> >>> Gérald Fenoy
>> >>> http://wiki.osgeo.org/wiki/User:Djay
>> >>>
>> >>>> Le 22 mai 2017 à 17:36, François Dodé <dode.francois at gmail.com> a
>> écrit :
>> >>>>
>> >>>> Thank you for your presicions.
>> >>>>
>> >>>> I have noticed an issue in the file ulinet.c of 825 revision :
>> >>>> The env variable is undeclared in the function header_write_data but
>> use in line 96.
>> >>>> For test I set : char env[256]
>> >>>> I don't know if it's the right correction but I when I do GET
>> request on web service who send cookies to the client the ZOORequest failed.
>> >>>>
>> >>>> 2017-05-22 14:56 GMT+02:00 Fenoy Gerald <gerald.fenoy at geolabs.fr>:
>> >>>> François,
>> >>>> sorry for being not clear.
>> >>>>
>> >>>> In the file ZOOMakefile.opts (generated by the configure script, so
>> you may also edit ZOOMakefile.opts.in in case you run the ./configure
>> command again) you should add to you CFLAGS definition the following
>> option: -DMSG_LAF_VERBOSE. Then remove any ulinet.o already built and run
>> make again.
>> >>>>
>> >>>> I hope it helps.
>> >>>>
>> >>>> Best regards,
>> >>>>
>> >>>> Gérald Fenoy
>> >>>> http://wiki.osgeo.org/wiki/User:Djay
>> >>>>
>> >>>>> Le 22 mai 2017 à 14:52, François Dodé <dode.francois at gmail.com> a
>> écrit :
>> >>>>>
>> >>>>> Hello,
>> >>>>>
>> >>>>> Thank you.
>> >>>>> I tested to add MSG_LAF_VERBOSE= -DMSG_LAF_VERBOSE in the
>> zoo-kernel Makefile but it's not working.
>> >>>>>
>> >>>>> In the main.cfg I put this in the main section:
>> >>>>> logPath = /var/log/zoo/out.log
>> >>>>> But nothing is log when I use the ZOO.Request.Get in the script
>> hello.js :
>> >>>>> ./zoo_loader.cgi "Request=Execute&service=WPS&I
>> dentifier=hellojs&version=1.0.0&DataInputs=S=test"
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> Best regards
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> 2017-05-22 10:21 GMT+02:00 Fenoy Gerald <gerald.fenoy at geolabs.fr>:
>> >>>>> Hello François,
>> >>>>> sorry for late reply.
>> >>>>>
>> >>>>> In case you want to debug the CURL call used for every internal
>> HTTP request and the one coming from the JS ZOO-API call, then you can
>> define the MSG_LAF_VERBOSE variable at compilation time to produce a debug
>> version. Once you have added the -DMSG_LAF_VERBOSE in your Makefile, simply
>> remove the ulinet.o and run the make command again.
>> >>>>>
>> >>>>> In case you need only to debug the result returned by the ZOO-API
>> call, then you can simply use the alert function from the ZOO-API to
>> display debug messages in your web server error log file. In case you want
>> to handle exception you can then use basic try / catch blocks.
>> >>>>>
>> >>>>> I hope it helps.
>> >>>>>
>> >>>>> ps: I have noticed that the discussion is not available to the
>> public, you may think of answering this email using the ZOO-Discuss mailing
>> list. What you are asking may be of interest to other also.
>> >>>>>
>> >>>>> Gérald Fenoy
>> >>>>> http://wiki.osgeo.org/wiki/User:Djay
>> >>>>>
>> >>>>>> Le 20 mai 2017 à 19:26, François Dodé <dode.francois at gmail.com> a
>> écrit :
>> >>>>>>
>> >>>>>> Hello Gerald,
>> >>>>>>
>> >>>>>> Thanks a lot for your help. Now it's work perfectly with the new
>> revision.
>> >>>>>> I think I had an old revision.
>> >>>>>>
>> >>>>>> Another question, how can I get log from the ZOORequest and handle
>> exceptions ?
>> >>>>>>
>> >>>>>> Best regards,
>> >>>>>>
>> >>>>>> Dodé François
>> >>>>>>
>> >>>>>> 2017-05-17 14:55 GMT+02:00 Fenoy Gerald <gerald.fenoy at geolabs.fr>:
>> >>>>>> Hello François,
>> >>>>>> thanks for the feedbacks about this issue.
>> >>>>>>
>> >>>>>> May I ask you to build a new ZOO-Kernel using the revision 825 [1]
>> ? This version should solve this issue.
>> >>>>>>
>> >>>>>> I hope to hear back from you.
>> >>>>>>
>> >>>>>> Best regards,
>> >>>>>>
>> >>>>>> [1] http://www.zoo-project.org/trac/changeset/825
>> >>>>>>
>> >>>>>>> Le 17 mai 2017 à 10:25, François Dodé <dode.francois at gmail.com>
>> a écrit :
>> >>>>>>>
>> >>>>>>> Hello Gerald,
>> >>>>>>>
>> >>>>>>> Thank you for your quick response.
>> >>>>>>> Maybe it's my install of mozjs. I run the ZOO on CentOs 6 and I
>> had to build this library.
>> >>>>>>> Here is the library :
>> >>>>>>> http://ftp.mozilla.org/pub/js/js185-1.0.0.tar.gz
>> >>>>>>>
>> >>>>>>> I add the request GET in the script hello.js.
>> >>>>>>> My Javascript process call the ZOO.Request.Get like this :
>> >>>>>>> ZOO.Request.Get("http://www.google.fr/")
>> >>>>>>> I put the result in the alert() function.
>> >>>>>>>
>> >>>>>>> Best regards,
>> >>>>>>>
>> >>>>>>> Dodé François
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> 2017-05-12 19:42 GMT+02:00 Fenoy Gerald <gerald.fenoy at geolabs.fr
>> >:
>> >>>>>>> Hello François,
>> >>>>>>> ZOORequest shall be defined at runtime by the ZOO-Kernel [1].
>> >>>>>>>
>> >>>>>>> Are you sure the issue comes from call to ZOO.Request.Get ?
>> >>>>>>>
>> >>>>>>> Can you please provide more details about your JavScript service ?
>> >>>>>>>
>> >>>>>>> Best regards,
>> >>>>>>>
>> >>>>>>> [1] http://www.zoo-project.org/trac/browser/trunk/zoo-project/
>> zoo-kernel/service_internal_js.c#L152
>> >>>>>>>
>> >>>>>>>> Le 12 mai 2017 à 16:06, François Dodé <dode.francois at gmail.com>
>> a écrit :
>> >>>>>>>>
>> >>>>>>>> Hello,
>> >>>>>>>>
>> >>>>>>>> I want to make a GET request with the ZOO-api but I have the
>> following error :
>> >>>>>>>> <ows:Exception exceptionCode="InternalError">
>> >>>>>>>>    <ows:ExceptionText>ZOO Kernel failed to process your request,
>> receiving signal 11 = SIGSEGV</ows:ExceptionText>
>> >>>>>>>> </ows:Exception>
>> >>>>>>>>
>> >>>>>>>> In the ZOO-api.js in the function ZOO.Request.Get(url, params)
>> it returns a class named ZOORequest but this class doesn't exist.
>> >>>>>>>>
>> >>>>>>>> Have you a solution ?
>> >>>>>>>>
>> >>>>>>>> Best regards
>> >>>>>>>> _______________________________________________
>> >>>>>>>> Zoo-discuss mailing list
>> >>>>>>>> Zoo-discuss at lists.osgeo.org
>> >>>>>>>> https://lists.osgeo.org/mailman/listinfo/zoo-discuss
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> Gérald Fenoy
>> >>>>>>> http://wiki.osgeo.org/wiki/User:Djay
>> >>>>>>>
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> Gérald Fenoy
>> >>>>>> http://wiki.osgeo.org/wiki/User:Djay
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>> _______________________________________________
>> >>>>> Zoo-discuss mailing list
>> >>>>> Zoo-discuss at lists.osgeo.org
>> >>>>> https://lists.osgeo.org/mailman/listinfo/zoo-discuss
>> >>>>
>> >>>>
>> >>>> _______________________________________________
>> >>>> Zoo-discuss mailing list
>> >>>> Zoo-discuss at lists.osgeo.org
>> >>>> https://lists.osgeo.org/mailman/listinfo/zoo-discuss
>> >>>
>> >>>
>> >>
>> >>
>> >>
>> >
>> > _______________________________________________
>> > Zoo-discuss mailing list
>> > Zoo-discuss at lists.osgeo.org
>> > https://lists.osgeo.org/mailman/listinfo/zoo-discuss
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/zoo-discuss/attachments/20170524/9d68e236/attachment-0001.html>


More information about the Zoo-discuss mailing list