EUDAT-B2STAGE / B2STAGE-GridFTP

B2STAGE service core code for EUDAT project: iRODS-DSI
14 stars 15 forks source link

No logging info from DSI #29

Open bnordgren opened 6 years ago

bnordgren commented 6 years ago

I built the DSI against irods 4.2.0 on centos 7 (see Docker build env). I believe this container to be set up to log to /var/log/gridftp.log at the INFO logging level. I have also tried the "ALL" logging level, with no difference.

I'm attempting a directory listing of my home directory with globus-url-copy. It fails. But all that is logged to /var/log/gridftp.log is:

[6] Sat Dec 23 19:04:47 2017 :: Child process 21 ended with rc = 11

This ticket isn't so much about my actual error as it is about the fact that no useful information is logged even at the "ALL" level.

Note you can't directly run a container from an image generated from the docker build above. The intent is that you use the image above in the FROM line of an environment-specific Dockerfile, where you make the irods service account authenticate as the rods user in your zone, and perform other configurations specific to your deployment. However, the above build environment has everything related to this ticket.

muccix commented 6 years ago

Any log on the client side?

Unfortunately, if the DSI crashes for any cause, the logs are not flushed to the stdout.

vladimir-mencl-eresearch commented 6 years ago

Hi @bnordgren : I was also at times experiencing similar problems with nothing logged.

I think this tends to happen when the dlopen of the iRODS DSI fails. With iRODS 4.x, the DSI shared-object has dependencies on the iRODS libraries ... and my only way around it was to LD_PRELOAD these dependencies into the GridFTP server (that's now in the documentation).

I'd suggest you check the LD_PRELOAD is there and is working correctly...

Cheers, Vlad

bnordgren commented 6 years ago

Hi @vladimir-mencl-eresearch , The problem was indeed the lack of an LD_PRELOAD. Thanks! Previously, I omitted it on purpose because the docs specify that LD_PRELOAD is required for 4.1 and I was building against 4.2.

@muccix The globus-url-copy program outputs the following (when broken):

[root@577338fff228 ~]# globus-url-copy -dbg  -s "/C=US/O=Globus Consortium/OU=Globus Connect Service/CN=60803eee-9fba-11e6-b0de-22000b92c261" -list   gsiftp://192.168.59.23/usfs/home/bnordgren/
gsiftp://192.168.59.23/usfs/home/bnordgren/
debug: starting to feat gsiftp://192.168.59.23/usfs/home/bnordgren/
debug: connecting to gsiftp://192.168.59.23/usfs/home/bnordgren/
debug: response from gsiftp://192.168.59.23/usfs/home/bnordgren/:
220 325b3bf3a51e GridFTP Server 12.4 (gcc64, 1510152968-85) [Globus Toolkit 6.0] ready.

debug: authenticating with gsiftp://192.168.59.23/usfs/home/bnordgren/
debug: fault on connection to gsiftp://192.168.59.23/usfs/home/bnordgren/: an end-of-file was reached
debug: operation complete

error: an end-of-file was reached
globus_xio: An end of file occurred

My specific problem is fixed, but I'll leave this open due to the topic being the lack of logging output.