ipywidgets icon indicating copy to clipboard operation
ipywidgets copied to clipboard

FileUpload widget - can not upload files >= 1MB (google colab)

Open garyee opened this issue 3 years ago • 0 comments

Description

Hi, thank you for a great library. I just came across a problem using the Upload widget. I am using google colab but after my understanding at this point, the problem could arise in other environments too. In fact there may be an other ticket for it #2522 There a workaround is proposed. Sadly I could not apply the workaround to Colab. I do not know if this problem can be solved technically, but maybe it would already help to add some feedback for the user.

Reproduce

Google Colab notbook for testing

  1. klick the link and go to the notebook
  2. Upload a file that has <1MB filesize (I tried it with a .csv with 150kb)
  3. The output of the second cell will say 1. (the uploader.value has a length of 1)
  4. Re-run the first cell (to reset the upload-widget)
  5. Then try the same with a file >1MB
  6. The file counter on the upload button will say one but the output of the second cell is 0, as the uploader.value has length 0

One thing I noticed additionally is that the colab runtime does a reconnect after step 5.

Expected behavior

Ideally there would be some sort of an error message, if the file I try to upload is larger then the limits of the system. Now I do not know if this would be even possible, technically. Then it would be good to have some feedback even if it is a message like "Ups sorry something went wrong with the upload please see this link" or something like it. As at first I had no idea that the error even occurred in the widget. And thirdly, I would suggest to only increase the upload counter only if the upload was successful, maybe the counter could correspond to the length of widget.value.

Context

  • ipywidgets version 7.7.0

There is an error in the dev console, when uploading a file > 1MB, the details of which are quite long but one line says: "SocketIO error: /session: xhr post error: 0 - TransportError" (The reproduce just open dev console on step 5)

Browser Output
hg https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:198
    (Async: setTimeout handler)
    hg https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:198
    receivedError https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:4042
    connect https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:5502
    emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
    emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:148
    emitAll https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:68
    onerror https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:74
    exports https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:155
    emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
    onError https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:96
    setTransport https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:86
    emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
    onError https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:113
    doWrite https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
    emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
    onError https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:106
    onreadystatechange https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:105
    (Async: setTimeout handler)
    onreadystatechange https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:105
    (Async: EventHandlerNonNull)
    create https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:104
    l https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:100
    request https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
    doWrite https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
    write https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
    encodePayloadAsBlob https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:123
    l https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:126
    A https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
    encodePayloadAsBlob https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:123
    encodePacket https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:116
    encodePayloadAsBlob https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:122
    A https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
    g https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
    encodePayloadAsBlob https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:122
    encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:119
    write https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
    send https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:114
    flush https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:94
    onDrain https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:93
    setTransport https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:86
    emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
    h https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
    emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:62
    onSuccess https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:105
    onData https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:106
    onLoad https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:107
    onreadystatechange https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:105
    (Async: EventHandlerNonNull)
    create https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:104
    l https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:100
    request https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
    doWrite https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:102
    write https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
    encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:120
    l https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:126
    A https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
    encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:120
    encodePacket https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:117
    encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:119
    A https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
    g https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:115
    encodePayload https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:119
    write https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:111
    send https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:114
    flush https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:94
    sendPacket https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:95
    send https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:94
    packet https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:75
    g https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:55
    removeBlobs https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:64
    g https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:55
    encode https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:56
    packet https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:75
    packet https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:149
    emit https://colab.research.google.com/v2/external/external.js?vrz=colab-20220504-060046-RC00_446421109:149
    sendBinary https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:5503
    send https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:5201
    send https://colab.research.google.com/v2/external/external_polymer_binary_l10n__en_gb.js?vrz=colab-20220504-060046-RC00_446421109:5231

garyee avatar May 06 '22 09:05 garyee