Comments (5)
I also get an error when running the unit tests that seems to be related:
1) Error:
test_with_success_cb_with_404(TestCurbCurlMulti):
TypeError: wrong argument type Fixnum (expected Data)
/Users/ian/development/atreia/deps/curb/tests/tc_curl_multi.rb:6:in `garbage_collect
/Users/ian/development/atreia/deps/curb/tests/tc_curl_multi.rb:6:in `teardown'
This isn't consistently reproducible, unfortunately. It seems to occur in ~50% of the runs.
Oddly enough, if you add a puts statement to the end of the test, the error doesn't seem to occur as often, if at all. Race condition of some sort on cleaning up the multi handle?
from curb.
Here's some additional information, when running valgrind.
valgrind /home/taf2/.local/bin/ruby tests/bug_multi_segfault.rb ==13822== Memcheck, a memory error detector. ==13822== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al. ==13822== Using LibVEX rev 1884, a library for dynamic binary translation. ==13822== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP. ==13822== Using valgrind-3.4.1, a dynamic binary instrumentation framework. ==13822== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al. ==13822== For more details, rerun with: -v ==13822== ==13822== Invalid read of size 8 ==13822== at 0xBBBC95A: curl_multi_free (curb_multi.c:61) ==13822== by 0x4E931AD: run_final (gc.c:2349) ==13822== by 0x4E91532: finalize_list (gc.c:1661) ==13822== by 0x4E936E6: rb_gc_call_finalizer_at_exit (gc.c:2464) ==13822== by 0x4E7FD86: ruby_finalize_1 (eval.c:117) ==13822== by 0x4E7FF19: ruby_cleanup (eval.c:157) ==13822== by 0x4E80185: ruby_run_node (eval.c:234) ==13822== by 0x40090A: main (main.c:35) ==13822== Address 0x10 is not stack'd, malloc'd or (recently) free'd ==13822== ==13822== Invalid read of size 2 ==13822== at 0x4F8A0D1: rb_vm_get_sourceline (vm.c:680) ==13822== by 0x4F8A471: rb_sourceline (vm.c:769) ==13822== by 0x4E7B9AF: rb_bug (error.c:230) ==13822== by 0x4F1E25D: sigsegv (signal.c:605) ==13822== by 0x523EE8F: (within /lib64/libpthread-2.10.1.so) ==13822== by 0xBBBC959: curl_multi_free (curb_multi.c:61) ==13822== by 0x4E931AD: run_final (gc.c:2349) ==13822== by 0x4E91532: finalize_list (gc.c:1661) ==13822== by 0x4E936E6: rb_gc_call_finalizer_at_exit (gc.c:2464) ==13822== by 0x4E7FD86: ruby_finalize_1 (eval.c:117) ==13822== by 0x4E7FF19: ruby_cleanup (eval.c:157) ==13822== by 0x4E80185: ruby_run_node (eval.c:234) ==13822== Address 0x64f489c is 4 bytes before a block of size 12 alloc'd ==13822== at 0x4C2563E: malloc (vg_replace_malloc.c:207) ==13822== by 0x4E8F811: vm_xmalloc (gc.c:624) ==13822== by 0x4E8F9C1: ruby_xmalloc2 (gc.c:711) ==13822== by 0x4F64C75: iseq_set_sequence (compile.c:1311) ==13822== by 0x4F640FE: iseq_setup (compile.c:954) ==13822== by 0x4F637AA: rb_iseq_compile_node (compile.c:503) ==13822== by 0x4F75972: rb_iseq_new_with_bopt_and_opt (iseq.c:336) ==13822== by 0x4F759D4: rb_iseq_new_with_opt (iseq.c:346) ==13822== by 0x4F75839: rb_iseq_new (iseq.c:304) ==13822== by 0x4F8CC64: Init_VM (vm.c:1911) ==13822== by 0x4E9A4B0: rb_call_inits (inits.c:55) ==13822== by 0x4E7FBC2: ruby_init (eval.c:66) : [BUG] Segmentation fault ruby 1.9.1p129 (2009-05-12 revision 23412) [x86_64-linux] -- control frame ---------- ==13822== ==13822== Conditional jump or move depends on uninitialised value(s) ==13822== at 0x4F8D02D: control_frame_dump (vm_dump.c:33) ==13822== by 0x4F8D70F: rb_vmdebug_stack_dump_raw (vm_dump.c:176) ==13822== by 0x4F8E12C: rb_vm_bugreport (vm_dump.c:575) ==13822== by 0x4E7B8C1: report_bug (error.c:215) ==13822== by 0x4E7B9CE: rb_bug (error.c:230) ==13822== by 0x4F1E25D: sigsegv (signal.c:605) ==13822== by 0x523EE8F: (within /lib64/libpthread-2.10.1.so) ==13822== by 0xBBBC959: curl_multi_free (curb_multi.c:61) ==13822== by 0x4E931AD: run_final (gc.c:2349) ==13822== by 0x4E91532: finalize_list (gc.c:1661) ==13822== by 0x4E936E6: rb_gc_call_finalizer_at_exit (gc.c:2464) ==13822== by 0x4E7FD86: ruby_finalize_1 (eval.c:117) ==13822== ==13822== Invalid read of size 2 ==13822== at 0x4F8A0D1: rb_vm_get_sourceline (vm.c:680) ==13822== by 0x4F8D358: control_frame_dump (vm_dump.c:109) ==13822== by 0x4F8D70F: rb_vmdebug_stack_dump_raw (vm_dump.c:176) ==13822== by 0x4F8E12C: rb_vm_bugreport (vm_dump.c:575) ==13822== by 0x4E7B8C1: report_bug (error.c:215) ==13822== by 0x4E7B9CE: rb_bug (error.c:230) ==13822== by 0x4F1E25D: sigsegv (signal.c:605) ==13822== by 0x523EE8F: (within /lib64/libpthread-2.10.1.so) ==13822== by 0xBBBC959: curl_multi_free (curb_multi.c:61) ==13822== by 0x4E931AD: run_final (gc.c:2349) ==13822== by 0x4E91532: finalize_list (gc.c:1661) ==13822== by 0x4E936E6: rb_gc_call_finalizer_at_exit (gc.c:2464) ==13822== Address 0x64f489c is 4 bytes before a block of size 12 alloc'd ==13822== at 0x4C2563E: malloc (vg_replace_malloc.c:207) ==13822== by 0x4E8F811: vm_xmalloc (gc.c:624) ==13822== by 0x4E8F9C1: ruby_xmalloc2 (gc.c:711) ==13822== by 0x4F64C75: iseq_set_sequence (compile.c:1311) ==13822== by 0x4F640FE: iseq_setup (compile.c:954) ==13822== by 0x4F637AA: rb_iseq_compile_node (compile.c:503) ==13822== by 0x4F75972: rb_iseq_new_with_bopt_and_opt (iseq.c:336) ==13822== by 0x4F759D4: rb_iseq_new_with_opt (iseq.c:346) ==13822== by 0x4F75839: rb_iseq_new (iseq.c:304) ==13822== by 0x4F8CC64: Init_VM (vm.c:1911) ==13822== by 0x4E9A4B0: rb_call_inits (inits.c:55) ==13822== by 0x4E7FBC2: ruby_init (eval.c:66) c:0001 p:0000 s:0002 b:0002 l:002628 d:002628 TOP --------------------------- -- Ruby level backtrace information----------------------------------------- -- C level backtrace information ------------------------------------------- 0x4f8e26a /home/taf2/.local/lib/libruby.so.1.9(rb_vm_bugreport+0x179) [0x4f8e26a] 0x4e7b8c2 /home/taf2/.local/lib/libruby.so.1.9 [0x4e7b8c2] 0x4e7b9cf /home/taf2/.local/lib/libruby.so.1.9(rb_bug+0xf1) [0x4e7b9cf] 0x4f1e25e /home/taf2/.local/lib/libruby.so.1.9 [0x4f1e25e] 0x523ee90 /lib64/libpthread.so.0 [0x523ee90] 0xbbbc95a /home/taf2/work/curb/ext/curb_core.so [0xbbbc95a] 0x4e931ae /home/taf2/.local/lib/libruby.so.1.9 [0x4e931ae] 0x4e91533 /home/taf2/.local/lib/libruby.so.1.9 [0x4e91533] 0x4e936e7 /home/taf2/.local/lib/libruby.so.1.9(rb_gc_call_finalizer_at_exit+0x278) [0x4e936e7] 0x4e7fd87 /home/taf2/.local/lib/libruby.so.1.9 [0x4e7fd87] 0x4e7ff1a /home/taf2/.local/lib/libruby.so.1.9(ruby_cleanup+0x181) [0x4e7ff1a] 0x4e80186 /home/taf2/.local/lib/libruby.so.1.9(ruby_run_node+0x73) [0x4e80186] 0x40090b /home/taf2/.local/bin/ruby(main+0x4f) [0x40090b] 0x5d31a2d /lib64/libc.so.6(__libc_start_main+0xfd) [0x5d31a2d] 0x4007f9 /home/taf2/.local/bin/ruby [0x4007f9] [NOTE] You may encounter a bug of Ruby interpreter. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html ==13822== ==13822== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 6 from 2) ==13822== malloc/free: in use at exit: 2,949,375 bytes in 15,296 blocks. ==13822== malloc/free: 16,587 allocs, 1,291 frees, 3,507,212 bytes allocated. ==13822== For counts of detected errors, rerun with: -v ==13822== Use --track-origins=yes to see where uninitialised values come from ==13822== searching for pointers to 15,296 not-freed blocks. ==13822== checked 2,165,304 bytes. ==13822== ==13822== LEAK SUMMARY: ==13822== definitely lost: 761 bytes in 14 blocks. ==13822== possibly lost: 51,928 bytes in 925 blocks. ==13822== still reachable: 2,896,686 bytes in 14,357 blocks. ==13822== suppressed: 0 bytes in 0 blocks. ==13822== Rerun with --leak-check=full to see details of leaked memory. Aborted
from curb.
Okay, I have a fix for the segv, if you pull and test on Mac OSX with ruby 1.9 that'd be very helpful thanks you!
from curb.
Looks good on OS X! Thanks for the quick fix :)
from curb.
Great, I'll spin a new release in a few
from curb.
Related Issues (20)
- on_failure receive incorrect argument HOT 1
- README: Change URLs to be to curl.se HOT 1
- New version request HOT 4
- Is CURLOPT_REQUEST_TARGET needed for Request-URI different than Host header? HOT 2
- Library not loaded: @rpath/libgssapi_krb5.2.2.dylib HOT 1
- Hello, I am new into coding, so i was trying to set up environment for ESG-BERT: https://github.com/mukut03/ESG-BERT using pytorch, but i am unable to solve this error on windows using anaconda, the server is running but unhealthy. Error(ESG-BERT) C:\Users\Administrator\anaconda3\envs\ESG-BERT>curl http://localhost:8080/ping { "status": "Unhealthy" }
- [BUG] Segmentation fault with Ruby 2.3 & curb 1.0.1 HOT 1
- LICENSE file contents does not match MIT license in the gemspec file HOT 1
- Gem install fails in windows 10 wsl v1 HOT 1
- Build against curl-impersonate HOT 1
- Investigate Ruby T_DATA warning HOT 1
- Segfault in Multi after upgrading to v1.0.3 HOT 5
- CURLOPT_NOPROXY not supported
- Curl::Err::HostResolutionError on WSL
- how do I `download_byte_limit` with curb
- `test_connection_keepalive(TestCurbCurlMulti)` skipped with Curl 8+ HOT 1
- Cannot edit cookies.
- Error Installing on Ubuntu 20.04.6 LTS
- error running the curb test suite with curl 8.7.1 HOT 5
- Not working with libcurl 8.8 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from curb.