Не могу выполнить запрос в rails: возможно, он выполнялся в другом потоке, когда вызывалась fork()

Я работаю под macOS Catalina версии 10.15.1. Когда я запускаю консоль rails в своем проекте и пытаюсь выполнить запрос типа User.first, я получаю:

objc[57093]: +[__NSCFConstantString initialize] мог выполняться в другом потоке, когда был вызван fork(). objc[57093]: +[__NSCFConstantString initialize] мог выполняться в другом потоке, когда был вызван fork(). Мы не можем безопасно вызывать или игнорировать его в дочернем процессе fork(). Вместо этого происходит сбой. Установите точку останова на objc_initializeAfterForkError для отладки.

Я следовал этому ответу и добавил OBJC_DISABLE_INITIALIZE_FORK_SAFETY в мой .zshrcfile, который выглядит так:

ZSH=$HOME/.oh-my-zsh

# You can change the theme with another one:
#   https://github.com/robbyrussell/oh-my-zsh/wiki/themes
ZSH_THEME="robbyrussell"

# Useful oh-my-zsh plugins for Le Wagon bootcamps
plugins=(git gitfast zsh-autosuggestions last-working-dir zsh-syntax-highlighting common-aliases history-substring-search)

# Prevent Homebrew from reporting - https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics.md
export HOMEBREW_NO_ANALYTICS=1

# Actually load Oh-My-Zsh
source "${ZSH}/oh-my-zsh.sh"
unalias rm # No interactive rm by default (brought by plugins/common-aliases)


export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

# Load rbenv if installed (To manage your Ruby versions)
export PATH="${HOME}/.rbenv/bin:${PATH}"
type -a rbenv > /dev/null && eval "$(rbenv init -)"

# Load nvm if installed (To manage your Node versions)
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"

# Anaconda binaries (python, pip, conda, jupyter, pytest, pylint etc.)
export PATH="/anaconda3/bin:${HOME}/anaconda3/bin:${PATH}"



# Rails and Ruby uses the local `bin` folder to store binstubs.
# So instead of running `bin/rails` like the doc says, just run `rails`
# Same for `./node_modules/.bin` and nodejs
export PATH="./bin:./node_modules/.bin:${PATH}:/usr/local/sbin"

# Store your own aliases in the ~/.aliases file and load the here.
[[ -f "$HOME/.aliases" ]] && source "$HOME/.aliases"

# Encoding stuff for the terminal
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export EDITOR=atom

Когда я запускаю в своем терминале echo $OBJC_DISABLE_INITIALIZE_FORK_SAFETY, я получаю YES, поэтому я думаю, что переменная среды установлена ​​​​правильно ... но это не решает проблему.

Как я могу решить эту проблему?


person David Geismar    schedule 17.12.2019    source источник


Ответы (1)


Я столкнулся с этой проблемой после обновления базы данных Postgres. В итоге я обновился до последней версии ruby ​​​​и переустановил все драгоценные камни. После этого все снова заработало.

Я также попробовал вариант OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES, но безрезультатно.

person eikes    schedule 17.12.2019