-
Notifications
You must be signed in to change notification settings - Fork 75
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
Segmentation fault ( Pycall [BUG] Segmentation fault at 0x0000000000000010 ) #183
Comments
I don't think there is a loop here, I have traced the code like this, I do not see any loops:
Are you using Rails or Puma? If so, PyCall is NOT safe to call from a web request, even if puma/rails has threads set to 1. Do you have threads in your application? I suspect this might be the same issue as: |
See: "is pycall thread safe": #96 |
Thanks for clarification |
@mAreebAlam I'm working on an approach for working with Puma, let me know if you want me to ping you when its working |
there is problem in the method import_module of file "pycall-1.5.2/lib/pycall.rb"
def import_module(name)
LibPython::Helpers.import_module(name)
end
it calls a c method in this file "ext/pycall/pycall.c"
C language method
static VALUE
pycall_libpython_helpers_m_import_module(int argc, VALUE *argv, VALUE mod)
{
VALUE name, globals, locals, fromlist, level;
char const *name_cstr;
rb_scan_args(argc, argv, "14", &name, &globals, &locals, &fromlist, &level);
if (RB_TYPE_P(name, T_SYMBOL)) {
name = rb_sym_to_s(name);
}
name_cstr = StringValueCStr(name);
if (argc == 1) {
return pycall_import_module(name_cstr);
}
if (argc == 5) {
level = rb_check_to_integer(level, "to_int");
}
else {
/* TODO: set the default level to 0 */
}
return pycall_import_module_level(name_cstr, globals, locals, fromlist, NUM2INT(level));
}
which again calls the previous method and the process continues in an infinite loop, hence segmentation fault occurs
The text was updated successfully, but these errors were encountered: