rails + git + heroku - ошибка на git push - PullRequest
2 голосов
/ 17 ноября 2010

Я пытаюсь перенести мое приложение на heroku, используя: git push heroku master, процесс работает нормально некоторое время, затем выкладывает все виды ошибок, которых я никогда раньше не видел, и я не могу найти большую помощь в Google.

Вот консоль формы журнала ошибок:

XXXXX-MacBook-XXXXXX xxxx$ git push heroku master
Counting objects: 7885, done.
Delta compression using up to 4 threads.
git(237,0xb0185000) malloc: *** mmap(size=81125376) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
warning: suboptimal pack - out of memory
git(237,0xb0185000) malloc: *** mmap(size=93798400) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
git(237,0xb0185000) malloc: *** mmap(size=93798400) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
fatal: Out of memory, malloc failed (tried to allocate 93797389 bytes)
error: pack-objects died with strange error
error: failed to push some refs to 'git@heroku.com:xxxxx-xxx-xx.git'

Кто-нибудь знает, что все это значит и почему это происходит?

Кроме того, я заметил, что мои: / UsersПапка /xxxxxx/Sites/xxxxxx/.git/objects содержит более 700 мегабайт, я не уверен, нормально это или нет, поскольку я новичок в rails и github.

Спасибо за любую помощь.

Ответы [ 3 ]

3 голосов
/ 17 ноября 2010

Большая часть решения проблем в комментариях выше;к тому времени, как мы перешли к чату, все было в порядке.Вот ответ, просто чтобы помочь закрыть вопрос.

Похоже, в хранилище возникла неизвестная проблема, из-за которой каталог объектов вышел из-под контроля.Нам действительно не нужно было определять, что это было, потому что все коммиты уже были перенесены в репозиторий github.Простое повторение оттуда (ура для DVCS, предоставляющего бесплатные резервные копии) создало совершенно хороший репозиторий, чтобы заменить старый.

Мораль истории: если ваш каталог .git в 20 раз больше вашего контента,вызывает сбои malloc / mmap во время рутинных операций, возможно, что-то не так с вашим репо.

0 голосов
/ 03 августа 2016

Должен быть в состоянии ограничить размер пакета до 100 МБ и ограничить номер потока 1:

$ git config --global pack.packSizeLimit "100m"

$ git config --global pack.threads "1"
0 голосов
/ 03 февраля 2012

краткий ответ: перед выполнением git push heroku master , запустите git repack -a -d --window-memory = 200m

почему?насколько я понимаю, git push запускает git gc, который запускает git repack.

проблема в том, что если максимальный объем памяти не передается, то git будет занимать неограниченное количество памяти (иначе вся память вваш компьютер) при сжатии .., следовательно, ошибка нехватки памяти.

поэтому перед выполнением git push heroku master запустите git repack -a -d --window-memory = 200m

.при сжатии используйте не более 200 МБ памяти, что предотвращает нехватку памяти процессом.

Подробнее см. http://linux.die.net/man/1/git-repack.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...