Крушение опорного пункта пакетная загрузка выполнена по неизвестной причине


Я пытаюсь загрузить 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 2

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, и это сделало свое дело.