Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.13 is easy to die, seems caused by log print #6941

Closed
ccnie opened this issue Mar 28, 2016 · 6 comments
Closed

3.13 is easy to die, seems caused by log print #6941

ccnie opened this issue Mar 28, 2016 · 6 comments

Comments

@ccnie
Copy link

ccnie commented Mar 28, 2016

HHVM Version

hhvm --version

HipHop VM 3.13.0-dev (rel)

Standalone code, or other way to reproduce the problem

HHVM process gone away after browse several php files.
Easy to reproduce

Expected result

Work OK

Actual result

(gdb) continue
Continuing.
[New Thread 0x7fa67bfff700 (LWP 4656)]

Program received signal SIGSEGV, Segmentation fault.
0x00007fa6922ce479 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
(gdb)
Continuing.
[Thread 0x7fa67bfff700 (LWP 4656) exited]

kernel log:
kernel: [45916.663244] hhvm[30706]: segfault at 38 ip 00007f5b2bd09479 sp 0000 7f5b1abf8340 error 4 in libc-2.13.so[7f5b2bcc6000+184000]

@Orvid
Copy link
Contributor

Orvid commented Mar 28, 2016

Could you get a backtrace while running a debug build? This doesn't tell us anything as-is.

@ccnie
Copy link
Author

ccnie commented Apr 1, 2016

gdb) bt
#0 0x00007f3a86e76479 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007f3a86e81188 in fprintf () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00000000066b6427 in HPHP::Logger::log(HPHP::Logger::LogLevelType, std::string const&, HPHP::StackTrace const_, bool, bool) () at /tmp/tmp.Vlutrvt2xd/hphp/util/logger.cpp:201
#3 0x00000000066b5e35 in HPHP::Logger::Log(HPHP::Logger::LogLevelType, std::string const&, HPHP::StackTrace const_, bool, bool) () at /tmp/tmp.Vlutrvt2xd/hphp/util/logger.cpp:126
#4 0x00000000066b59af in HPHP::Logger::Log(HPHP::Logger::LogLevelType, char const_, va_list_tag) ()
at /tmp/tmp.Vlutrvt2xd/hphp/util/logger.cpp:75
#5 0x00000000066b5635 in HPHP::Logger::Error(char const
, ...) () at /tmp/tmp.Vlutrvt2xd/hphp/util/logger.cpp:42
#6 0x0000000004a03b2f in HPHP::bt_handler(int) () at /tmp/tmp.Vlutrvt2xd/hphp/runtime/base/crash-reporter.cpp:123
#7
#8 0x00007f3a86e76479 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
#9 0x00007f3a86e81188 in fprintf () from /lib/x86_64-linux-gnu/libc.so.6
#10 0x00000000066b6427 in HPHP::Logger::log(HPHP::Logger::LogLevelType, std::string const&, HPHP::StackTrace const_, bool, bool) () at /tmp/tmp.Vlutrvt2xd/hphp/util/logger.cpp:201
#11 0x00000000066b5e35 in HPHP::Logger::Log(HPHP::Logger::LogLevelType, std::string const&, HPHP::StackTrace const_, bool, bool) () at /tmp/tmp.Vlutrvt2xd/hphp/util/logger.cpp:126
#12 0x00000000066b59af in HPHP::Logger::Log(HPHP::Logger::LogLevelType, char const_, va_list_tag) ()
at /tmp/tmp.Vlutrvt2xd/hphp/util/logger.cpp:75
#13 0x00000000066b5720 in HPHP::Logger::
#14 0x0000000004e3d765 in HPHP::profileRequestEnd() () at /tmp/tmp.Vlutrvt2xd/hphp/runtime/vm/type-profile.cpp:208
#15 0x000000000492465f in HPHP::ExecutionContext::requestExit() ()
at /tmp/tmp.Vlutrvt2xd/hphp/runtime/base/execution-context.cpp:1630
#16 0x00000000047f2f78 in HPHP::hphp_context_exit(bool) ()
at /tmp/tmp.Vlutrvt2xd/hphp/runtime/base/program-functions.cpp:2248
#17 0x0000000004c5b194 in HPHP::HttpRequestHandler::executePHPRequest(HPHP::Transport
, HPHP::RequestURI&, HPHP::SourceRootInfo&, bool) () at /tmp/tmp.Vlutrvt2xd/hphp/runtime/server/http-request-handler.cpp:558
#18 0x0000000004c59a23 in HPHP::HttpRequestHandler::handleRequest(HPHP::Transport_) ()
at /tmp/tmp.Vlutrvt2xd/hphp/runtime/server/http-request-handler.cpp:391
#19 0x0000000004cc95c6 in HPHP::ServerWorkerstd::shared_ptr<HPHP::FastCGIJob, HPHP::FastCGITransportTraits>::doJobImpl(std::shared_ptrHPHP::FastCGIJob, bool) () at /tmp/tmp.Vlutrvt2xd/hphp/runtime/server/server-worker.h:110
#20 0x0000000004cc8f4c in HPHP::ServerWorkerstd::shared_ptr<HPHP::FastCGIJob, HPHP::FastCGITransportTraits>::doJob(std::shared_ptrHPHP::FastCGIJob) () at /tmp/tmp.Vlutrvt2xd/hphp/runtime/server/server-worker.h:56
---Type to continue, or q to quit---
#21 0x0000000004cc4818 in HPHP::JobQueueWorkerstd::shared_ptr<HPHP::FastCGIJob, HPHP::Server_, true, false, HPHP::JobQueueDropVMStack>::start() () at /tmp/tmp.Vlutrvt2xd/hphp/util/job-queue.h:459
#22 0x0000000004a34cf2 in HPHP::AsyncFuncHPHP::Compiler::EmitterWorker::run_(void*) ()
at /tmp/tmp.Vlutrvt2xd/hphp/util/async-func.h:208
#23 0x000000000668f109 in HPHP::AsyncFuncImpl::threadFuncImpl() () at /tmp/tmp.Vlutrvt2xd/hphp/util/async-func.cpp:131

#24 0x000000000668ecf9 in HPHP::AsyncFuncImpl::ThreadFunc(void_) () at /tmp/tmp.Vlutrvt2xd/hphp/util/async-func.cpp:51
#25 0x0000000004a79d6f in HPHP::start_routine_wrapper(void_) () at /tmp/tmp.Vlutrvt2xd/hphp/runtime/base/thread-hooks.cpp:104
#26 0x00007f3a87448b50 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#27 0x00007f3a86f1130d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#28 0x0000000000000000 in ?? ()
(gdb)

@Orvid
Copy link
Contributor

Orvid commented Apr 1, 2016

I'm having issues reproducing this. Could you provide your full ini settings?

This was referenced Apr 2, 2016
@ghost
Copy link

ghost commented Apr 2, 2016

I have the same issue

server.ini

pid = /var/run/hhvm/pid

; hhvm specific

hhvm.server.ip = 127.0.0.1
hhvm.server.port = 9000
;hhvm.server.file_socket=/var/run/hhvm/hhvm.sock

hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.use_log_file = true
hhvm.log.header = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc

hhvm.jit_a_size = 536870912
hhvm.jit_a_cold_size = 268435456
hhvm.jit_a_frozen_size = 536870912
hhvm.jit_a_prof_size = 536870912
hhvm.jit_a_max_usage = 536870912
hhvm.jit_global_data_size=62914560

php.ini

; php options
session.save_handler = files
session.save_path = /var/lib/php5
session.gc_maxlifetime = 1440
;error_reporting = E_ERROR | E_WARNING | E_PARSE

; hhvm specific
hhvm.log.level = Error
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.mysql.typed_results = false
hhvm.mysql.socket = /var/run/mysqld/mysqld.sock
hhvm.pdo_mysql.socket = /var/run/mysqld/mysqld.sock
hhvm.mysqli.socket = /var/run/mysqld/mysqld.sock

Hope it helps

@ccnie
Copy link
Author

ccnie commented Apr 6, 2016

@Orvid
server.ini
; php options

pid = /var/run/hhvm/pid

; hhvm specific

hhvm.server.port = 9001
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
hhvm.server.gzip_compression_level = 0
hhvm.eval.perf_pid_map = false

server.ini
; php options
session.save_handler = files
session.save_path = /var/lib/hhvm/sessions
session.gc_maxlifetime = 1440

; hhvm specific
;hhvm.log.level = Warning
hhvm.log.level = Error
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.mysql.typed_results = false
[PHP]

cgi.fix_pathinfo = 0
display_errors = Off
max_execution_time = 0
max_input_time = 120
memory_limit = 128M
request_order = "CGP"
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
upload_max_filesize = 50M
post_max_size = 50M
engine = On
short_open_tag = On
expose_php = Off
log_errors = On
error_log = /var/log/php_errors.log

asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
disable_classes =
zend.enable_gc = On
display_startup_errors = Off
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
variables_order = "GPCS"
register_argc_argv = Off
auto_globals_jit = On
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = Off

file_uploads = On
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60

[Date]
date.timezone = UTC

[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = On

[mail function]
SMTP = localhost
smtp_port = 25
sendmail_path = /usr/sbin/sendmail -t
mail.add_x_header = On

[CLI Server]
cli_server.color = On

[Session]
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly = 1
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off

[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"

[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[MSSQL]
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]

@Orvid
Copy link
Contributor

Orvid commented Apr 6, 2016

Yep, I managed to get it reproducing locally.

Also, although this was filed before #6950, that one has (significantly) more information in it, so I'm going to close this one as a duplicate of that.

@Orvid Orvid closed this as completed Apr 6, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants