2017-10-05 9 views
4

루비 2.3.1에서 루비 2.4.1로 업그레이드 할 때 유니콘이 새 버전과 호환되지 않는 것 같습니다. 아래 오류가 발생합니다. 유니콘 5.1.0을 사용하고 있으며 유니콘 5.3.1을 사용하지 않았습니다. XCode Tools 대신 다른 lib로 컴파일해야합니까?유니콘과 루비 2.4.1이 이상한 충돌을 일으킴

나는 foreman start 사용하여 서버를 시작하고 Procfile 즉시 오류를 얻을 : 내가 왜이 유니콘에 특정한 생각 간단한 bin/rails s을 사용하는 경우

webpack: bin/webpack-dev-server 
gulp: gulp 
redis: ./scripts/start_redis_server.sh 
sidekiq: bundle exec sidekiq -C config/sidekiq.yml 
annotations_server: ./scripts/start_annotation_server.sh 
rails: bundle exec unicorn_rails -p 3000 -c config/unicorn.rb 

시작하고 잘 실행 것으로 보인다.

objc[40847]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called. 
objc[40846]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called. 
objc[40846]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. 
objc[40847]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. 
E, [2017-10-05T12:12:01.618013 #40833] ERROR -- : reaped #<Process::Status: pid 40847 SIGABRT (signal 6)> worker=1 
E, [2017-10-05T12:12:01.618064 #40833] ERROR -- : reaped #<Process::Status: pid 40846 SIGABRT (signal 6)> worker=0 
I, [2017-10-05T12:12:01.619387 #40850] INFO -- : Refreshing Gem list 
I, [2017-10-05T12:12:01.620867 #40851] INFO -- : Refreshing Gem list 
+0

여기에 정보가없는 많은 정말있다 :이 루비에 고정 (또는 유니콘/푸마의 회피) 할 때까지 해결, 당신은 루비 프로세스를 시작하기 전에 다음과 같은 환경 변수를 추가 할 수 있습니다으로

. 어떤 상황에서이 충돌을합니까? – tadman

+0

로컬 dev 서버를 시작하기 만하면됩니다. 몇 가지 세부 사항으로 질문을 업데이트하십시오. – CWitty

답변

12

맥 OS 높은 시에라 changed the behaviour of the fork syscall 오류로 취급됩니다 갈래의 프로세스에서 목표 - C API를 호출하는 등.

MacOS High Sierra에서 Ruby를 사용하는 경우 Ruby에서 사용하는 것입니다. 동일한 문제는 다중 프로세스 모델을 사용하는 Puma 및 다른 서버에도 영향을 미치므로 엄격하게 Unicorn (또는 Puma) 문제가 아니라 Ruby 중 하나입니다.

Unicorn mailing listPuma issue에서 문제가 논의되었습니다.

OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES 
+0

철저한 응답을 보내 주신 후 확인해 보겠습니다. – CWitty

+0

그게 다 했어, 고마워. – CWitty