Dear Folks,
I'm Lori from Autodesk company and working on Fusion 360 product. We recently found one application crash issue on Mac OS X 10.10 that need your help to check. Please refer to the crash call stack as below, thanks a lot!
Our team member Rob has some analysis comments as below.
-------------------------------------------
This looks exactly like the ceil problem we found on Mountain Lion (10.8), except now it is from _nearbyint. I looked at the OSX versions of these reports and they are all 10.10.3. (Yosemite)
The problem starts with a call to a std library function that uses __hash_table, usually std::unordered_map.insert….
Here is the call in the llvm libc++ source (which may not be exactly the same as apples implementation.)
https://llvm.org/svn/llvm-project/libcxx/trunk/include/__hash_table
rehash(_VSTD::max<size_type>(2 * __bc + !__is_hash_power2(__bc),
size_type(ceil(float(size() + 1) / max_load_factor()))));
The ceil function for float is implemented in libsystem_m using simd instructions that load the float into the first half of the register, and leaves the other half uninitialized. It then finds the ceil of both floats together. If the un-initialised half of the register happens to contain an ‘invalid float’ this is normally safely ignored, but because ASM enables hardware floating point exceptions, this causes an exception to be raised.
Maybe they have changed the map implementation to use nearbyint instead of ceil, but otherwise it looks like the same problem.
The fact that we are seeing it on Yosemite is surprising because we only saw this problem with Mountain Lion, and we thought an update to Yosemite fixed it!
-------------------------------------------
Crash call stack as below:
Index
Module
Object
Function
Offset
Source File
0
libsystem_kernel_dylib
_NA_
___pthread_kill
0xA
1
libsystem_pthread_dylib
_NA_
_pthread_kill
0x5A
2
libsystem_c_dylib
_NA_
_abort
0x81
3
libc++abi_dylib
_NA_
___cxa_bad_cast
0x0
4
libc++abi_dylib
_NA_
default_unexpected_handler
0x0
5
libobjc_a_dylib
_NA_
_objc_terminate
0x7C
6
libc++abi_dylib
std
__terminate
0x8
7
libc++abi_dylib
__cxxabiv1
exception_cleanup_func
0x0
8
libasmbase221a_dylib
_NA_
signalHandlerFunction
0x322
9
libsystem_platform_dylib
_NA_
__sigtramp
0x1A
10
libsystem_m_dylib
_NA_
_nearbyint
0x57
11
libasmbool221a_dylib
std::__1::pair<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::pair<FACE*, int>, void*>*>, bool> std::__1::__hash_table<std::__1::pair<FACE*, int>, std::__1::__unordered_map_hasher<FACE*, int, std::__1::hash<FACE*>, true>, std::__1::__unordere...
__insert_unique<std::__1::pair<FACE* const, int>&>
0xA6
12
libasmbool221a_dylib
face_groups
add_face_to_group
0x10F