尝试使用OSX Snow Leopard在Heroku上启动psql时出现分段错误(10.6.8)

时间:2012-08-06 03:32:33

标签: postgresql heroku

我正在尝试使用Heroku的Postgresql。我使用从http://www.enterprisedb.com/products-services-training/pgdownload下载的安装程序安装了Postgres 9.1.4。然后在我的/etc/profile中,我将psql的位置添加到了我的PATH。当我尝试将psql shell与Heroku一起使用时,我遇到了分段错误,但是当我尝试在本地使用它时似乎工作正常:

[Sun Aug 05 20:17:47] : which psql
/Library/PostgreSQL/9.1/bin/psql
[Sun Aug 05 20:22:15] : heroku pg:psql
psql (9.1.4)
Segmentation fault
[Sun Aug 05 20:22:21] : psql -U postgres
Password for user postgres: 
psql (9.1.4)
Type "help" for help.

postgres=# \q
[Sun Aug 05 20:22:29] : heroku version
heroku-toolbelt/2.30.2 (universal-darwin10.0) ruby/1.8.7

我注意到heroku version显示了ruby/1.8.7,但我使用的是rvm use 1.9.3。这个Ruby不匹配会成为问题吗?如果是这样,我该如何解决?由于分段错误错误消息非常模糊,我不知道下一步该怎么做。这一切都在Mac OS X 10.6.8上。

4 个答案:

答案 0 :(得分:1)

我联系了Heroku支持,他们建议通过Homebrew安装Postgres(http://mxcl.github.com/homebrew/)。我这样做了,现在我可以访问我的Heroku数据库了。

答案 1 :(得分:1)

我也有这个问题:psql在本地工作,但是段heroku pg:psql的段错误。我发现降级到Postgres 9.1.3(installer still available)解决了它。

看起来heroku pg:psql命令只是用适当的命令行参数调用psql并以某种方式传递密码。我可以在没有heroku命令的情况下重现问题:

psql -U random_username -h ec2-10-10-10-10.compute-1.amazonaws.com -p 5432 random_dbname
Password for user random_username: 
psql (9.1.4)
Segmentation fault

所以问题似乎在于psql二进制文件。我查看了核心转储的堆栈跟踪,看起来问题是SSL处理中的问题(Heroku使用,但通常不与localhost连接使用):

#0  0x00000001000da622 in SSL_get_current_cipher ()
#1  0x0000000100007415 in printSSLInfo ()
#2  0x00000001000073c6 in connection_warnings ()
#3  0x00000001000141dd in main ()

这是有道理的,因为与Heroku的成功psql连接确实吐出了关于SSL密码连接的一行:

heroku pg:psql --app wattdepot-kukuicup-uhm-staging
psql (9.1.3, server 9.1.4)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

random_dbname=>

我没有进一步调查过。

答案 2 :(得分:1)

我遇到了完全相同的问题。关于Heroku的建议我刚刚从postgres 9.1.4更新到9.1.5,现在“heroku pg:psql”工作正常。

答案 3 :(得分:1)

我们肯定只是按照已经提到的参数推荐psql命令,所以我并不认为Heroku方面有什么问题。似乎psql中有一个错误显然已得到修复,所以我认为更新你的本地postgres应该可以做到这一点(无论如何,它似乎已经为我所谈过的所有人提供了固定的东西。