Крушение опорного пункта пакетная загрузка выполнена по неизвестной причине
Я пытаюсь загрузить DSYM s на firebase, которая отлично работала еще несколько дней назад. Когда я запускаю сценарий, и он начинает Логгин, через несколько строк он застревает на несколько минут, а затем терпит неудачу.
/Users/..../dSYMs/DF...C47.dSYM/Contents/Resources/DWARF/leveldb: warning: function at offset 0x51662 has no name
./Pods/FirebaseCrash/upload-sym-util.bash:365: error: upload: Unable to upload symbol file (reason unknown).
Самое интересное, что в консоли firebase он сообщает мне, что загрузка была успешной:
Будущие трассировки стека для UUID B4...ААФ будет быть обозначенным с помощью загруженного файла символов.
Но это никогда, потому что я "загрузил" несколько таких, и с тех пор у меня было еще несколько аварий, но все еще не символических...
Что происходит?
К вашему сведению: я использую firebase crashreporting с февраля, и это сработало хорошо. Я обновил свой mac до High Sierra несколько дней назад.
Твой
1 ответ:
TL; DR
Найдите следующую строку в
upload-sym-util.bash
:HTTP_STATUS=$(curl ${CURLOPT} -sfL -H 'Content-Type: text/plain' -H "Authorization: Bearer ${BEARER_TOKEN}" -w '%{http_code}' -T "${FILE}" "${UPLOAD_URL}")
И добавьте
--http1.1
в конце так, чтобы получилось:HTTP_STATUS=$(curl ${CURLOPT} -sfL -H 'Content-Type: text/plain' -H "Authorization: Bearer ${BEARER_TOKEN}" -w '%{http_code}' -T "${FILE}" "${UPLOAD_URL}" --http1.1)
Объяснение
У нас была эта проблема при загрузке файлов DSYM на Firebase через XCode. Что сводило нас с ума, так это то, что процесс, казалось, случайным образом преуспевал и терпел неудачу. Когда загрузка не удалась, это произошло через несколько минут.
Нам удалось запустить команду offending
curl
вручную и обнаружили, что он возвращал код состояния HTTP 000, который, кажется, происходит, когда соединение закрыто, прежде чем сервер действительно возвращает что-либо (например, тайм-аут). Используя аргумент--verbose
, мы обнаружили, чтоcurl
прерывает вызов с помощьюINTERNAL_ERROR (err 2)
, который, по-видимому, связан с использованием HTTP/2. Нам удалось подтвердить это, когда мы обнаружили, что единственная машина, которая смогла правильно загрузить файлы DSYM, имела ту же версиюcurl
, что и все остальные, но без поддержки HTTP / 2, которая была очевидно, добавлено в High Sierra . Мы заставилиcurl
использовать HTTP1. 1, и это сделало свое дело.