Pydio Booster crash

Home Forums Troubleshooting Generic Help Pydio Booster crash

Tagged: 

This topic contains 5 replies, has 2 voices, and was last updated by Profile photo of ghecquet ghecquet 4 weeks, 1 day ago.

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #107930
    Profile photo of TopKool
    topkool
    Participant

    Dear all,

    Pydio Booster is a very good idea, but I am facing a Booster crash every time I try to upload a file from Chrome.

    Once the file upload try to start, Booster crashes, and then Chrome switch back to polling and the upload starts.

    Any idea?

    Here is the Booster’s log:

    2017/01/08 11:40:09 [INFO] Successfully loaded TLS assets from /etc/letsencrypt/live/pydio.domain.com/fullchain.pem and /etc/letsencrypt/live/pydio.domain.com/privkey.pem
    Activating privacy features... done.
    https://pydio.domain.com:8090
    INFO 2017/01/08 11:40:09.448570 Set log level to 9
    INFO 2017/01/08 11:40:09.448771 [nsqd] nsqd v0.3.8 (built w/go1.7.1)
    INFO 2017/01/08 11:40:09.448780 [nsqd] ID: 1013
    INFO 2017/01/08 11:40:09.448784 [com] Starting NSQ on port 4150 and 4151
    INFO 2017/01/08 11:40:09.450163 [nsqd] TCP: listening on [::]:4150
    INFO 2017/01/08 11:40:09.451530 [nsqd] HTTP: listening on [::]:4151
    
    INFO 2017/01/08 11:40:44.118985 [pydiomiddleware] START
    INFO 2017/01/08 11:40:44.119089 [pydiomiddleware] END - took %s 40.028µs
    ERROR 2017/01/08 11:40:44.11?09 [pydiomiddleware] Not a match
    INFO 2017/01/08 11:40:44.11?33 [pydiomiddleware] START
    INFO 2017/01/08 11:40:44.119279 [pydiomiddleware] Request Job Start {https  <nil> pydio.domain.com   false device=upload&get_action=keystore_generate_auth_token } [] map[device:[upload] get_action:[keystore_generate_auth_token]] token
    INFO 2017/01/08 11:40:44.119441 [pydiomiddleware] Node job: retrieved {1 / teraterm-4.93.exe {0 false false false    { } {     false    }}} from /io/1/teraterm-4.93.exe
    INFO 2017/01/08 11:40:44.119742 [pydiomiddleware] END - took %s 604.618µs
    INFO 2017/01/08 11:40:44.119782 [pydiomiddleware] START
    INFO 2017/01/08 11:40:44.119834 [pydiomiddleware] Request Job Start {https  <nil> pydio.domain.com /api/{repo}/upload/put/{nodedir}  false auto_rename=true&xhr_uploader=true } [[X-File-Direct-Upload request-options] [X-Pydio-Admin-Auth zrZdFzKyC62BymDEDhgN75XD:FuYVF0tQU71psd9JQSONOZmR] [X-File-Name {nodename}]] map[auto_rename:[true] xhr_uploader:[true]] options
    ERROR 2017/01/08 11:40:44.119872 [pydiomiddleware] Could not decode to auth
    INFO 2017/01/08 11:40:44.188202 [pydiomiddleware] END - took %s 68.410993ms
    INFO 2017/01/08 11:40:44.188268 [pydioupload] REQ START
    ERROR 2017/01/08 11:40:49.8214? [pydiomiddleware] Request: error while decoding  invalid character '<' looking for beginning of value
    ERROR 2017/01/08 11:40:49.821647 [pydioupload] Pydio Upload returns an error :  context canceled
    INFO 2017/01/08 11:40:49.821983 [pydioupload] REQ END took %s 5.633702994s
    panic: runtime error: slice bounds out of range [recovered]
            panic: runtime error: slice bounds out of range [recovered]
            panic: runtime error: slice bounds out of range
    
    goroutine 1862 [running]:
    panic(0xaae820, 0xc420010110)        /usr/local/go/src/runtime/panic.go:500 +0x1a1
    github.com/pydio/pydio-booster/encoding/path.(*decodeState).unmarshal.func1(0xc4200419c8)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:89 +0x11b
    panic(0xaae820, 0xc420010110)        /usr/local/go/src/runtime/panic.go:458 +0x243
    github.com/pydio/pydio-booster/encoding/path.(*decodeState).unmarshal.func1(0xc420041580)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:89 +0x11b
    panic(0xaae820, 0xc420010110)        /usr/local/go/src/runtime/panic.go:458 +0x243
    github.com/pydio/pydio-booster/encoding/path.(*decodeState).path(0xc42000f880, 0xa50900, 0xc420b8ad80, 0x16)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:364 +0x645
    github.com/pydio/pydio-booster/encoding/path.(*decodeState).value(0xc42000f880, 0xa50900, 0xc420b8ad80, 0x16)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:214 +0x111
    github.com/pydio/pydio-booster/encoding/path.(*decodeState).unmarshal(0xc42000f880, 0xa50900, 0xc420b8ad80, 0x0, 0x0)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:104 +0x243
    github.com/pydio/pydio-booster/encoding/path.Unmarshal(0xc420bde980, 0x1, 0x8, 0xa50900, 0xc420b8ad80, 0xc4200416c8, 0x8)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:47 +0x102
    github.com/pydio/pydio-booster/io.(*Node).UnmarshalPath(0xc420b8ac60, 0xc420bde980, 0x1, 0x8, 0xc420246000, 0x7fa6b1d9f920)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/io/node.go:104 +0xad
    github.com/pydio/pydio-booster/encoding/path.(*decodeState).path(0xc42000f7a0, 0xad5400, 0xc420b8ac60, 0x16)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:275 +0xb69
    github.com/pydio/pydio-booster/encoding/path.(*decodeState).value(0xc42000f7a0, 0xad5400, 0xc420b8ac60, 0x16        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:214 +0x111
    github.com/pydio/pydio-booster/encoding/path.(*decodeState).unmarshal(0xc42000f7a0, 0xad5400, 0xc420b8ac60, 0x0, 0x0)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:104 +0x243
    github.com/pydio/pydio-booster/encoding/path.Unmarshal(0xc420bde980, 0x1, 0x8, 0xad5400, 0xc420b8ac60, 0x8, 0x2)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/encoding/path/decode.go:47 +0x102
    github.com/pydio/pydio-booster/io.NewNode(0xc420041d30, 0x3, 0x3, 0x1)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/io/node.go:54 +0x16a
    github.com/pydio/pydio-booster/server/middleware/pydioupload.handle.func1(0x0)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/server/middleware/pydioupload/handler.go:1? +0x73b
    github.com/pydio/pydio-booster/server/middleware/pydioupload.errHandle.func1(0xc420bb07e0, 0xc420bacac0)        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/server/middleware/pydioupload/handler.go:92 +0x27
    created by github.com/pydio/pydio-booster/server/middleware/pydioupload.errHandle        /home/pydio/tcAgent/work/f9990cede0540743/src/github.com/pydio/pydio-booster/server/middleware/pydioupload/handler.go:92 +0x161
    

    #107994
    Profile photo of ghecquet
    ghecquet
    Participant

    Hi there,

    Can you post the content of your pydioconf / pydiocaddy files ?

    The logs suggest the Booster can’t authenticate on behalf of your user with the core Pydio server. It could be a misconfiguration on both sides.

    Thanks,
    Greg


    #107998
    Profile photo of TopKool
    topkool
    Participant

    Hi,

    Of course (I’ve just renamed the domain name and the 2 tokens).

    Additional info:
    – Pydio Booster is run with that command: “sudo -u www-data /usr/share/pydio/booster/pydio -conf /etc/pydio/pydio.conf”
    – Pydio is running behind Apache (which is acting as a proxy https://pydio.domain.com), but Pydio Booster (port 8090) is opened for direct access from internet (it’s ugly, but I will change it later).

    pydio.conf
    ~~~
    {
    “scheduler”: {
    “host”: “https:\/\/pydio.domain.com”,
    “tokenP”: “XXXXXXXXXXXX”,
    “tokenS”: “YYYYYYYYYYYYYYYYYYY”,
    “minutes”: 2
    },
    “nsq”: {
    “host”: “0.0.0.0”,
    “port”: 4150
    },
    “caddyFilePath”: “\/etc\/pydio\/caddy.conf”
    }
    ~~~

    caddy.conf
    ~~~
    https://pydio.domain.com:8090 {
    tls /etc/letsencrypt/live/pydio.domain.com/fullchain.pem /etc/letsencrypt/live/pydio.domain.com/privkey.pem

    pydiows /ws {
    pre {
    if {>Cookie} has “AjaXplorer”
    type request
    url https://pydio.domain.com?get_action=keystore_generate_auth_token&device=websocket
    cookie AjaXplorer
    out token
    }
    pre {
    type request
    url https://pydio.domain.com/api/pydio/ws_authenticate?key=XXXXXXXXXXXX:YYYYYYYYYYYYYYYYYYY
    query auth_hash
    query auth_token
    out user
    }
    }

    header /io {
    Access-Control-Allow-Origin https://pydio.domain.com
    Access-Control-Request-Headers *
    Access-Control-Allow-Methods POST
    Access-Control-Allow-Headers Range
    Access-Control-Allow-Credentials true
    }

    pydioupload /io {
    pre {
    type node
    out node
    }

    pre {
    if {query} has “minisite_session”
    type request
    url https://pydio.domain.com?get_action=keystore_generate_auth_token&device=upload
    query minisite_session
    cookie AjaXplorer_Shared
    out token
    }
    pre {
    if {query} not_has “minisite_session”
    if {>Cookie} has “AjaXplorer=”
    type request
    url https://pydio.domain.com?get_action=keystore_generate_auth_token&device=upload
    cookie AjaXplorer
    out token
    }

    pre {
    type request
    url https://pydio.domain.com/api/{repo}/upload/put/{nodedir}?xhr_uploader=true
    header X-File-Direct-Upload request-options
    header X-Pydio-Admin-Auth XXXXXXXXXXXX:YYYYYYYYYYYYYYYYYYY
    header X-File-Name {nodename}
    query *
    out options
    }

    post {
    type request
    url https://pydio.domain.com/api/{repo}/upload/put/{nodedir}?xhr_uploader=true
    header X-File-Direct-Upload upload-finished
    header X-Pydio-Admin-Auth XXXXXXXXXXXX:YYYYYYYYYYYYYYYYYYY
    header X-File-Name {nodename}
    query auth_hash
    query auth_token
    out body
    }
    }

    pydioadmin /admin
    basicauth /admin XXXXXXXXXXXX YYYYYYYYYYYYYYYYYYY
    }
    ~~~

    Thanks


    #108231
    Profile photo of ghecquet
    ghecquet
    Participant

    Hi, Sorry for the delay I hadn’t seen your response.

    Could you please confirm you get a token back when you hit this url with a valid cookie ? You can get one by logging in on the website and going to the Network section of the Developer Tools.

    eg :

    curl -iv -H “Cookie: AjaXplorer=<VALID_COOKIE>” https://pydio.domain.com?get_action=keystore_generate_auth_token&device=websocket

    It looks from the logs that this request is not going through but I’d quite like to know why. It might have to do with the fact that you’re using a proxy (on that note, you could change the configuration of the middleware pre request to hit the local url instead of going through the public address – seeing the booster should be running somewhere on the same network).

    If you could paste the result of the curl request that would be helpful.


    #108236
    Profile photo of TopKool
    topkool
    Participant

    Thanks for your support!

    Here is the log using the command (I replaced only domain.com and the IP address 99.99.99.99). I run the command from Linux and Windows.

    Isn’t an issue related to the session ID encoded in UTF8?

    * Rebuilt URL to: https://pydio.domain.com/?get_action=keystore_generate_auth_token&device=websocket
    *   Trying 99.99.99.99...
    * Connected to pydio.domain.com (99.99.99.99) port 443 (#0)
    * ALPN, offering http/1.1
    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    * successfully set certificate verify locations:
    *   CAfile: C:\TEMP\curl\bin\curl-ca-bundle.crt
      CApath: none
    * TLSv1.2 (OUT), TLS header, Certificate Status (22):
    * TLSv1.2 (OUT), TLS handshake, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Server hello (2):
    * TLSv1.2 (IN), TLS handshake, Certificate (11):
    * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.2 (IN), TLS handshake, Server finished (14):
    * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
    * TLSv1.2 (OUT), TLS handshake, Finished (20):
    * TLSv1.2 (IN), TLS change cipher, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
    * ALPN, server did not agree to a protocol
    * Server certificate:
    *        subject: CN=pydio.domain.com
    *        start date: Jan  3 13:54:00 2017 GMT
    *        expire date: Apr  3 13:54:00 2017 GMT
    *        subjectAltName: pydio.domain.com matched
    *        issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
    *        SSL certificate verify ok.
    > GET /?get_action=keystore_generate_auth_token&device=websocket HTTP/1.1
    > Host: pydio.domain.com
    > User-Agent: curl/7.46.0
    > Accept: */*
    > Cookie: AjaXplorer=<6r2lopvkpovi6gtb7vv92q5c72>
    >
    < HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    < Date: Tue, 24 Jan 2017 09:25:23 GMT
    Date: Tue, 24 Jan 2017 09:25:23 GMT
    < Server: Apache/2.4.10 (Debian)
    Server: Apache/2.4.10 (Debian)
    < Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
    Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
    < X-Frame-Options: SAMEORIGIN
    X-Frame-Options: SAMEORIGIN
    < Public-Key-Pins:              pin-sha256="oGYHZMTeFkd1UIB+Yj0gaQyajMsVLMz0uwpOoUy11XU=";              pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=";              pin-sha256="oGYHZMTeFkd1UIB+Yj0gaQyajMsVLMz0uwpOoUy11XU=";
            pin-sha256="Pr0lyXwMdWGlAi5zkllf4o3HrlZOUPOTloR0UEwbBTc=";              pin-sha256="aJv2fgF4jKtvwqox7dXd1h8MPKLiOT+VwLowL+ex/Bs=";              pin-sha256="C6XrHTcqec/PMHeWNc0aenQZlzt3q5JpCaMyAzzIq1M=";              pin-sha256="JWHwqvEHv2AEbbE9TSE6uSusQHhhcj5rKpMr5rMnnZQ=";              pin-sha256="JlM7oSR/2unMiuCbsfQOpFnCLvDoZ7Wn5WxQvFNGLz0=";
            max-age=5184000;                includeSubDomains
    Public-Key-Pins:                pin-sha256="oGYHZMTeFkd1UIB+Yj0gaQyajMsVLMz0uwpOoUy11XU=";          pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=";          pin-sha256="oGYHZMTeFkd1UIB+Yj0gaQyajMsVLMz0uwpOoUy11XU=";
    pin-sha256="Pr0lyXwMdWGlAi5zkllf4o3HrlZOUPOTloR0UEwbBTc=";              pin-sha256="aJv2fgF4jKtvwqox7dXd1h8MPKLiOT+VwLowL+ex/Bs=";              pin-sha256="C6XrHTcqec/PMHeWNc0aenQZlzt3q5JpCaMyAzzIq1M=";              pin-sha256="JWHwqvEHv2AEbbE9TSE6uSusQHhhcj5rKpMr5rMnnZQ=";              pin-sha256="JlM7oSR/2unMiuCbsfQOpFnCLvDoZ7Wn5WxQvFNGLz0=";
    max-age=5184000;                includeSubDomains
    < Connection: close
    Connection: close
    < Content-Length: 203
    Content-Length: 203
    < Vary: Accept-Encoding
    Vary: Accept-Encoding
    < X-XSS-Protection: 1; mode=block
    X-XSS-Protection: 1; mode=block
    < X-Content-Type-Options: nosniff
    X-Content-Type-Options: nosniff
    < Content-Type: text/xml; charset=UTF-8
    Content-Type: text/xml; charset=UTF-8
    
    <
    <?xml version="1.0" encoding="UTF-8"?><tree ><message type="ERROR">session_start(): The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,'</message></tree>* Closing connection 0
    * TLSv1.2 (OUT), TLS alert, Client hello (1):
    

    • This reply was modified 4 weeks, 1 day ago by Profile photo of TopKool topkool.
    #108238
    Profile photo of ghecquet
    ghecquet
    Participant

    Could you please remove the <> around the cookie when you curl the request ? (it was just to show that the variable needed to be substituted)

    Thanks,
    G


    • This reply was modified 4 weeks, 1 day ago by Profile photo of ghecquet ghecquet.
Viewing 6 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic.