Получение «записи фрагмента ниже минимального размера» при попытке записи в Google Cloud с использованием gcsfs

#dask

#dask

Вопрос:

У меня есть скрипт, который использует gcsfs для записи данных в Google Cloud. Большую часть времени это работает, но довольно регулярно я получаю следующую ошибку:

 ValueError: Non-final chunk write below min size.
  

Похоже, эта ошибка возникает из GCSFile._upload_chunk .

Я не могу найти в документах ничего, что объясняет, что здесь может быть не так. Я прочитал эту тему , в которой предполагается, что это может быть связано с тем, как фиксируются данные (должен ли я отключить автоматическую фиксацию?), Но я не уверен, что это полностью актуально. Я прочитал исходный код этой функции, но это тоже не слишком помогло. Был бы признателен за любые рекомендации!

Мой код выглядит следующим образом:

 with gcs.open(file_path, mode='w') as f:
    f.write('n'.join(output_data))
  

output_data вот список строк. gcs является примером gcsfs.GCSFileSystem .

Комментарии:

1. Можете ли вы подробно описать «регулярно». Обратная трассировка была бы хорошей; кроме того, вы можете установить с master и включить ведение журнала, установив переменную среды GCSFS_DEBUG=1.

2. Если вы можете придумать автономный и полный пример проблемы, это можно опубликовать как ошибку на github

3. Спасибо! Я попытаюсь сузить его и получить дополнительную регистрацию. Пока кажется, что это происходит с определенными файлами, а не с другими, вероятно, где-то между 1% и 20% файлов, которые я пытаюсь записать. Попытаюсь идентифицировать конкретный файл и упростить его / удалить что-либо конфиденциальное, чтобы я мог поделиться данными.

4. Привет @mdurant — эта проблема исчезла, когда я запустил основную ветку. Затем я понял, что все еще использую 0.6.0 gcsfs, и просто обновление до 0.7.0 решило эту проблему. Спасибо и извинения!

Ответ №1:

Эта проблема, по-видимому, больше не возникает в версии 0.7.0. Любой, кто сталкивается с ней, должен обновиться.