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

Crash when converting Strings to Floats #2955

Closed
yorickpeterse opened this issue Feb 25, 2014 · 4 comments
Closed

Crash when converting Strings to Floats #2955

yorickpeterse opened this issue Feb 25, 2014 · 4 comments
Assignees

Comments

@yorickpeterse
Copy link
Contributor

When running tests on the latest version of Git master using a production app, I'm presented with the following crash:

Rubinius Crash Report #rbxcrashreport

Error: signal SIGSEGV

[[Backtrace]]
review_collector[0x671241]
/usr/lib/libpthread.so.0(+0xf880)[0x7fd1715ee880]
review_collector(_ZN8rubinius5Float9from_cstrEPNS_5StateEPKcS4_PNS_6ObjectE+0x176)[0x6c46a6]
review_collector(invoke_string_to_f+0x44)[0x5e55e4]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x4c0b)[0x5bb0fb]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_12TwoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x348)[0x60c768]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1f28)[0x5b8418]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_16GenericArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x383)[0x60b2e3]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1f28)[0x5b8418]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x32c)[0x60b7dc]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1f28)[0x5b8418]
review_collector(_ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x38f)[0x6ab50f]
review_collector(_ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x200)[0x6ab100]
review_collector(_ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi+0x3d)[0x6ab75d]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x2c7b)[0x5b916b]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x338)[0x60c248]
review_collector(_ZN8rubinius8CallSite19empty_cache_privateEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE+0x156)[0x6ad5d6]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x218a)[0x5b867a]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_17SplatOnlyArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x363)[0x60bd23]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x200d)[0x5b84fd]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x338)[0x60c248]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x200d)[0x5b84fd]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x338)[0x60c248]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1f28)[0x5b8418]
review_collector(_ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x38f)[0x6ab50f]
review_collector(_ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x200)[0x6ab100]
review_collector(_ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi+0x3d)[0x6ab75d]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x2e2f)[0x5b931f]
review_collector(_ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x38f)[0x6ab50f]
review_collector(_ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x200)[0x6ab100]
review_collector(_ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi+0x3d)[0x6ab75d]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x2c5b)[0x5b914b]
review_collector(_ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x38f)[0x6ab50f]
review_collector(_ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x200)[0x6ab100]
review_collector(_ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi+0x3d)[0x6ab75d]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x2c5b)[0x5b914b]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x338)[0x60c248]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x200d)[0x5b84fd]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x32c)[0x60b7dc]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x200d)[0x5b84fd]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x32c)[0x60b7dc]
review_collector(_ZN8rubinius8CallSite11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE+0x156)[0x6acd86]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x200d)[0x5b84fd]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x32c)[0x60b7dc]
review_collector(_ZN8rubinius12CompiledCode16default_executorEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x225)[0x6b1485]
review_collector(_ZN8rubinius8CallSite11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE+0x156)[0x6acd86]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1f28)[0x5b8418]
review_collector(_ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x38f)[0x6ab50f]
review_collector(_ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x200)[0x6ab100]
review_collector(_ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi+0x3d)[0x6ab75d]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x2c5b)[0x5b914b]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x32c)[0x60b7dc]
review_collector(_ZN8rubinius8CallSite11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE+0x156)[0x6acd86]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x200d)[0x5b84fd]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x32c)[0x60b7dc]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1e3e)[0x5b832e]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x32c)[0x60b7dc]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1e3e)[0x5b832e]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x32c)[0x60b7dc]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1f28)[0x5b8418]
review_collector(_ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x338)[0x60c248]
review_collector(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1f28)[0x5b8418]
review_collector(_ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x38f)[0x6ab50f]
review_collector(_ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x200)[0x6ab100]

[[System Info]]
sysname: Linux
nodename: yorickpeterse-macbook-olery
release: 3.13.5-1-ARCH
version: #1 SMP PREEMPT Sun Feb 23 00:25:24 CET 2014
machine: x86_64

Gist link: https://gist.github.com/anonymous/7ab5ae1ff6ac60b031ed

This particular crash only happens after running the application in question for quite some time. It's not yet sure to me what exactly is causing it. As an extra note, Nokogiri (which is being used heavily) was built from Git to make sure that whatever patches it would have were taken into account.

@yorickpeterse
Copy link
Contributor Author

GDB backtrace of said crash:

#0  0x00000000007d5ad8 in rubinius::Float::from_cstr (state=0x7fffd95c9ee8, str=0x7fffc2e5f00e "", end=0x7fffc2e5efd8 "\n", ' ' <repeats 28 times>, "\n", ' ' <repeats 24 times>, 
    strict=0xa) at vm/builtin/float.cpp:117
#1  0x00000000008172bc in rubinius::String::to_f (this=0x7fffc2e5f010, state=0x7fffd95c9ee8, strict=0xa) at vm/builtin/string.cpp:933
#2  0x000000000065a576 in invoke_string_to_f (state=0x7fffd95c9ee8, call_frame=0x7fffd9578a30, args=0x7fffd9578a78, arg_count=2)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/invoke_primitives.cpp:8203
#3  0x000000000060139b in rubinius::MachineCode::interpreter (state=0x7fffd95c9ee8, mcode=0x7fffcc160f20, call_frame=0x7fffd9578a30)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:1339
#4  0x00000000006aa2e0 in rubinius::MachineCode::execute_specialized<rubinius::TwoArguments> (state=0x7fffd95c9ee8, previous=0x7fffd957b3b0, exec=0x7ffff54bd588, mod=0x17ec5d0, 
    args=...) at vm/machine_code.cpp:671
#5  0x00000000007f1227 in rubinius::MonoInlineCache::check_cache (state=0x7fffd95c9ee8, call_site=0x7fffc38889d8, call_frame=0x7fffd957b3b0, args=...)
    at vm/builtin/mono_inline_cache.cpp:73
#6  0x0000000000634787 in rubinius::CallSite::execute (this=0x7fffc38889d8, state=0x7fffd95c9ee8, call_frame=0x7fffd957b3b0, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#7  0x00000000005fb4ef in rubinius::MachineCode::interpreter (state=0x7fffd95c9ee8, mcode=0x7fffcc160860, call_frame=0x7fffd957b3b0)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:543
#8  0x00000000006a8ca0 in rubinius::MachineCode::execute_specialized<rubinius::GenericArguments> (state=0x7fffd95c9ee8, previous=0x7fffd957dd40, exec=0x7ffff54bc140, 
    mod=0x17ec5d0, args=...) at vm/machine_code.cpp:671
#9  0x00000000007f1227 in rubinius::MonoInlineCache::check_cache (state=0x7fffd95c9ee8, call_site=0x7fffc38811b0, call_frame=0x7fffd957dd40, args=...)
    at vm/builtin/mono_inline_cache.cpp:73
#10 0x0000000000634787 in rubinius::CallSite::execute (this=0x7fffc38811b0, state=0x7fffd95c9ee8, call_frame=0x7fffd957dd40, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#11 0x00000000005fb4ef in rubinius::MachineCode::interpreter (state=0x7fffd95c9ee8, mcode=0x185c1a0, call_frame=0x7fffd957dd40)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:543
#12 0x00000000006a9230 in rubinius::MachineCode::execute_specialized<rubinius::NoArguments> (state=0x7fffd95c9ee8, previous=0x7fffd9580690, exec=0x7ffff5484ee0, mod=0x179cd20, 
    args=...) at vm/machine_code.cpp:671
#13 0x00000000007f1227 in rubinius::MonoInlineCache::check_cache (state=0x7fffd95c9ee8, call_site=0x7fffc3308dc8, call_frame=0x7fffd9580690, args=...)
    at vm/builtin/mono_inline_cache.cpp:73
#14 0x0000000000634787 in rubinius::CallSite::execute (this=0x7fffc3308dc8, state=0x7fffd95c9ee8, call_frame=0x7fffd9580690, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#15 0x00000000005fb4ef in rubinius::MachineCode::interpreter (state=0x7fffd95c9ee8, mcode=0x7fffd0034e40, call_frame=0x7fffd9580690)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:543
#16 0x00000000007aef00 in rubinius::BlockEnvironment::execute_interpreter (state=0x7fffd95c9ee8, previous=0x7fffd9583230, env=0x7fffc2e548c0, args=..., invocation=...)
    at vm/builtin/block_environment.cpp:356
#17 0x00000000007ae8fe in rubinius::BlockEnvironment::invoke (state=0x7fffd95c9ee8, previous=0x7fffd9583230, env=0x7fffc2e548c0, args=..., invocation=...)
    at vm/builtin/block_environment.cpp:91
#18 0x00000000007af00d in rubinius::BlockEnvironment::call (this=0x7fffc2e548c0, state=0x7fffd95c9ee8, call_frame=0x7fffd9583230, args=..., flags=0)
    at vm/builtin/block_environment.cpp:375
#19 0x000000000080f906 in rubinius::Proc::yield (this=0x7fffc2e54978, state=0x7fffd95c9ee8, call_frame=0x7fffd9583230, args=...) at vm/builtin/proc.cpp:140
#20 0x00000000005fd47f in rubinius::MachineCode::interpreter (state=0x7fffd95c9ee8, mcode=0x7fffd01465a0, call_frame=0x7fffd9583230)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:775
#21 0x00000000006a9d50 in rubinius::MachineCode::execute_specialized<rubinius::OneArgument> (state=0x7fffd95c9ee8, previous=0x7fffd9583720, exec=0x7fffdbbde088, mod=0x246e490, 
    args=...) at vm/machine_code.cpp:671
#22 0x00000000007b2964 in rubinius::CallSite::empty_cache_private (state=0x7fffd95c9ee8, call_site=0x7ffff5330248, call_frame=0x7fffd9583720, args=...)
    at vm/builtin/call_site.cpp:127
#23 0x00000000007f15b7 in rubinius::CallSite::fallback (this=0x7ffff5330248, state=0x7fffd95c9ee8, call_frame=0x7fffd9583720, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:112
#24 0x000000000080df7c in rubinius::PolyInlineCache::check_cache (state=0x7fffd95c9ee8, call_site=0x7ffff5330248, call_frame=0x7fffd9583720, args=...)
    at vm/builtin/poly_inline_cache.cpp:110
#25 0x0000000000634787 in rubinius::CallSite::execute (this=0x7ffff5330248, state=0x7fffd95c9ee8, call_frame=0x7fffd9583720, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#26 0x00000000008f7bef in rbx_splat_send_private (state=0x7fffd95c9ee8, call_frame=0x7fffd9583720, call_site=0x7ffff5330248, count=0, call_flags=0, args=0x7fffd9583768)
    at vm/llvm/jit_util.cpp:147
#27 0x00007ffff40547d0 in ?? ()
#28 0x0000000000000000 in ?? ()

@yorickpeterse
Copy link
Contributor Author

Some extra output from GDB, currently trying to figure out exactly what causes the crash:

(gdb) bt 5
#0  0x00000000007d5ad8 in rubinius::Float::from_cstr (state=0x7fffd95c9ee8, str=0x7fffc2e5f00e "", end=0x7fffc2e5efd8 "\n", ' ' <repeats 28 times>, "\n", ' ' <repeats 24 times>, 
    strict=0xa) at vm/builtin/float.cpp:117
#1  0x00000000008172bc in rubinius::String::to_f (this=0x7fffc2e5f010, state=0x7fffd95c9ee8, strict=0xa) at vm/builtin/string.cpp:933
#2  0x000000000065a576 in invoke_string_to_f (state=0x7fffd95c9ee8, call_frame=0x7fffd9578a30, args=0x7fffd9578a78, arg_count=2)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/invoke_primitives.cpp:8203
#3  0x000000000060139b in rubinius::MachineCode::interpreter (state=0x7fffd95c9ee8, mcode=0x7fffcc160f20, call_frame=0x7fffd9578a30)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:1339
#4  0x00000000006aa2e0 in rubinius::MachineCode::execute_specialized<rubinius::TwoArguments> (state=0x7fffd95c9ee8, previous=0x7fffd957b3b0, exec=0x7ffff54bd588, mod=0x17ec5d0, 
    args=...) at vm/machine_code.cpp:671
(More stack frames follow...)
(gdb) info locals
len = -54
b = {buffer = 0x0}
buffer = 0x0
p = 0x0
prev = 0 '\000'
svalue = 0x7fffd95762d0 "\360bW\331\377\177"
special = false
rest = 0x1a <error: Cannot access memory at address 0x1a>
value = 6.953305158283863e-310
(gdb) info args
state = 0x7fffd95c9ee8
str = 0x7fffc2e5f00e ""
end = 0x7fffc2e5efd8 "\n", ' ' <repeats 28 times>, "\n", ' ' <repeats 24 times>
strict = 0xa
(gdb) frame
#0  0x00000000007d5ad8 in rubinius::Float::from_cstr (state=0x7fffd95c9ee8, str=0x7fffc2e5f00e "", end=0x7fffc2e5efd8 "\n", ' ' <repeats 28 times>, "\n", ' ' <repeats 24 times>, 
    strict=0xa) at vm/builtin/float.cpp:117
117         *p = '\0';

@yorickpeterse
Copy link
Contributor Author

Backtraces of all running threads: https://gist.github.com/YorickPeterse/a85d4a59d9faa2a12aa8

@yorickpeterse yorickpeterse self-assigned this Feb 25, 2014
yorickpeterse pushed a commit that referenced this issue Feb 25, 2014
In certain cases when a String with only whitespace (be it spaces, newlines or
a mix of that) would be converted to a Float this would result in a crash.

The added test is a bit odd but it's based on the output/behaviour as described
in #2955 (comment).

In particular String::byte_size() returned 0 for some reason (this might be a
bug on its own as far as I can tell), which would then trigger a crash in
Float::from_cstr().

Thanks to @brixen for helping me out with this one as I was, and this might be
an understatement, rather clueless on what was going on.

See #2955 for more info.
@yorickpeterse
Copy link
Contributor Author

This should be fixed in a527018. I'll re-open if the issue re-surfaces.

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

1 participant