DynamoRIO / drmemory

Memory Debugger for Windows, Linux, Mac, and Android
Other
2.45k stars 262 forks source link

Cannot Trace MS SQL Server 2014 #1655

Open derekbruening opened 9 years ago

derekbruening commented 9 years ago

From p...@appfirst.com on November 12, 2014 12:28:16

What steps will reproduce the problem? 1. Shut down SQL Server Service

  1. chdir to C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn
  2. execute drmemory.exe -- sqlservr.exe -sMSSQLSERVER What is the expected output? What do you see instead? Expectation is to see the App not crashing. What I see is:

<Application C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\sqlservr.exe (2424). DynamoRIO internal crash at PC 0x00000000. Please report this at http://dynamorio.org/issues/ . Program aborted.sion 4.2.2833, cu stom build -no_dynamic_options -logdir 'C:\Users\Administrator\AppData\Roaming\Dr. Memory\dynamorio' -client_lib 'C:\Program Files (x86)\Dr. Memory\bin\release\drmemorylib.dll;0;-logdir C:\Users\Administrator\AppData\Roaming\Dr. Memory -symcache_dir C:\Users\Administrator\AppData\Roaming\Dr. Memory\symcache -lib_blacklist C:\Windows*.d?? -resfile 2424 ' -code_api - probe_api -stack_size > WARNING: unable to locate results file since can't open C:\Users\Administrator\AppData\Roaming\Dr. Memory/resfile.2424: 2 There was likely an early crash, perhaps due to interference from invasive security software. Try disabling other softw are. Dr.M WARNING: application exited with abnormal code 0xc0000005 What version of the product are you using? On what operating system? MSSQL Server 2014 32-bits on Windows 2012 R2 64-bits

Does the problem go away when running in light mode (pass "-light" to Dr. Memory)? What about when running with the options "-leaks_only -no_count_leaks -no_track_allocs"? Does the problem go away when using the most recent build from http://build.chromium.org/p/client.drmemory/builds/? Try the debug version of Dr. Memory and of its underlying engine DynamoRIO by passing "-debug -dr_debug -pause_at_assert" to drmemory.exe. Are any messages reported? No Please provide any additional information below. Please also see the "Narrowing Down the Source of the Problem" section of https://code.google.com/p/drmemory/wiki/Debugging .

Original issue: http://code.google.com/p/drmemory/issues/detail?id=1655

derekbruening commented 9 years ago

From zhao...@google.com on November 12, 2014 09:40:58

Does the problem go away when running in light mode (pass "-light" to Dr. Memory)? What about when running with the options "-leaks_only -no_count_leaks -no_track_allocs"?

If it still fails, could you please try to run DynamoRIO (which is the base system Dr.Memory build on top of), so we can better isolate the problem.

derekbruening commented 9 years ago

From p...@appfirst.com on November 12, 2014 09:42:49

Sorry, forgot to fill out that part. I did try the alternate options and it still crashed.

Are the there some instructions on how to run DynamoRIO?

derekbruening commented 9 years ago

From zhao...@google.com on November 12, 2014 09:52:31

You can download dynamorio from http://www.dynamorio.org/ and the command should be similar to Dr.Memory, something like ./bin32/drrun -debug -- your_app

derekbruening commented 9 years ago

From p...@appfirst.com on November 12, 2014 11:06:34

Still failing:

<Starting application C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\sqlservr.exe (3536)> <Cannot allocate 12 tls slots at 1 alignment> <Not tested @d:\dynamorio_package\core\win32\os.c:921> <Not tested @d:\dynamorio_package\core\win32\os.c:929> <Cannot allocate 12 tls slots at 0 alignment> <Application C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\sqlservr.exe (3536). DynamoRIO internal crash at PC 0x00000000. Please report this at http://dynamorio.org/issues/ . Program aborted.sion 5.0.0, build 9 -no_dynamic_options -code_api -probe_api -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct -no_aslr_dr -pad_jmps_mark_no_trace 0x00b0ef60 0x68cf1b97 0x00b0efbc 0x68a9a4ad 0x00b0f880 0x68ccf051 0x00b0f8e0 0x68cd6908> <Application C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\sqlservr.exe (3536). Internal E rror: DynamoRIO debug check failure: d:\dynamorio_package\core\win32\os.c:939 res (Error occurred @0 frags) version 5.0.0, build 9 -no_dynamic_options -code_api -probe_api -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct -no_aslr_dr -pad_jmps_mark_no_trace 0x00b0ee60 0x68b54da4 0x00b0ef98 0x68cf1bba 0x00b0efbc 0x68a9a4ad 0x00b0f880 0x68ccf051 0x00b0f8e0 0x68cd6908>

derekbruening commented 9 years ago

From zhao...@google.com on November 12, 2014 11:21:08

It looks like sqlserver used too many TLS slots that DR cannot have enough TLS for itself.