2014-11-13 2 views
0

Я получил эту ошибку при попытке использовать cabal updateCabal удалось обновить (код возврата: -9)

ниже были результаты cabal update -v3

Downloading the latest package list from hackage.haskell.org 
Sending: 
GET /packages/archive/00-index.tar.gz HTTP/1.1 
Host: hackage.haskell.org 
User-Agent: cabal-install/1.16.0.2 
Creating new connection to hackage.haskell.org 
Received: 
HTTP/1.1 301 Moved Permanently 
Server: nginx/1.6.2 
Date: Thu, 13 Nov 2014 00:14:21 GMT 
Content-Type: text/plain; charset=UTF-8 
Transfer-Encoding: chunked 
Connection: keep-alive 
Location: /packages/index.tar.gz 
Content-Length: 0 
301 - redirect 
Redirecting to http://hackage.haskell.org/packages/index.tar.gz ... 
Sending: 
GET /packages/index.tar.gz HTTP/1.1 
Host: hackage.haskell.org 
User-Agent: cabal-install/1.16.0.2 
Recovering connection to hackage.haskell.org 
Received: 
HTTP/1.1 200 OK 
Server: nginx/1.6.2 
Date: Thu, 13 Nov 2014 00:14:21 GMT 
Content-Type: application/x-gzip 
Content-Length: 8090775 
Connection: keep-alive 
Content-MD5: bae2f93619ba845eff2f3bd544714c2c 
ETag: "bae2f93619ba845eff2f3bd544714c2c" 
Last-Modified: Wed, 12 Nov 2014 23:04:10 GMT 
Downloaded to /root/.cabal/packages/hackage.haskell.org/00-index.tar.gz 
Updating the index cache file... 
cabal update: /usr/hs/tools/cabal-1.16.0.2 failure (return code=-9) 

Haskell была установлена ​​с justhub

ли кто-нибудь есть идея, почему это не удалось? Я искал код возврата , но информации нет.

Update

Благодаря Reid (и user5402),

Проверил dmesg, и это, безусловно, потому что это из памяти

Out of memory: Kill process 32626 (cabal-1.16.0.2) score 711 or sacrifice child 

будет модернизировать машину и попробовать еще раз, не уверен, что бы требовать установки в каббале, хотя я на 512 МБ ОЗУ

+0

Я бы попробовал запустить команду с помощью 'strace -f', чтобы проследить все системные вызовы, включая разветвленные дети, и искать неудавшийся системный вызов в конце вывода. Также возможно, что 'return code = -9' относится к состоянию выхода дочернего процесса. – ErikR

+0

-9, вероятно, означает, что дочерний процесс умер до SIGKILL, который, в свою очередь, был, вероятно, отправлен убийцей OOM. Вы на машине с низкой памятью? Проверьте вывод dmesg, чтобы увидеть, есть ли там какие-либо релевантные сообщения. –

+0

У меня также была такая же проблема с низким VPS VPS на Terminal.com, всего 256 МБ, и процесс продолжал убивать. Сжатие ОЗУ до 1600 МБ и обновление завершено довольно быстро. –

ответ

2

Значение -9 probab ly означает, что дочерний процесс умер до SIGKILL, который, в свою очередь, был, вероятно, отправлен убийцей OOM. Проверка вывода dmesg может подтвердить это. Если это так, нужно открыть доступную RAM. (на основе this comment).

+0

Ошибка из-за памяти, по-видимому, вызвала эту же проблему для меня --- с кодом выхода 137. – jpaugh

1

512 МБ ОЗУ недостаточно. Вместо обновления машины вы можете включить swap.

На убунту сделать следующие шаги:

sudo fallocate -l 4G /swapfile 
sudo chmod 600 /swapfile 
sudo mkswap /swapfile 
sudo swapon /swapfile 

Это добавит вам 4G файл подкачки, что позволит предотвратить убийство от ОС.

Смежные вопросы