HiOne of application on domino crashed. The analysis from IBM is the process used 2GB memory and this indicates a problem criticizes because of the limit of 2GB of Windows 32. The lack of memory caused for high allocation of particular memory of the nSMDreal caused the PANIC: Cannot attach you shared memory region, due you insufficient access (probably owned by to another to user or group).
From NSD, nsmdreal used about 336MB private memory and 1.6GB shared memroy.
My question are,
-
Why this crash occured, is it really because the 2GB limintation of Win32?
-
As I know, a process cannot allocate more than 2GB memory from OS. When it ties to allocate more than 2GB memory from OS, OS will return a NULL pointer and it indicates failed. The process should handle this error and should not crash. From the NSD, it seems that the reason of the crash isn’t the process using a NULL pointer. It seems the problem existed Domino managing shared memory. If my analysis is wrong, please correct me or could you explain detailedly how domino manage memory at the current situation.
Thanks!
Here are part of NSD
############################################################
thread 6/9: [nsmdreal: 2508: 1a54]
FP=4f533db0, PC=7c82ed54, SP=4f533d40
stkbase=4f540000, total stksize=397312, used stksize=49856
############################################################
@[ 1] 0x7c82ed54 ntdll.KiFastSystemCallRet+0 (4964,493e0,0,4f534230)
@[ 2] 0x77e6ba42 KERNEL32.WaitForSingleObjectEx+34 (4964,493e0,0,0)
@[ 3] 0x601a7c9e nnotes._OSRunExternalScript@4+558 (4f534348)
@[ 4] 0x601a69e6 nnotes._OSFaultCleanup@12+422 (0,0,0)
@[ 5] 0x601b15c7 nnotes._OSNTUnhandledExceptionFilter@4+183 (4f53506c)
@[ 6] 0x4af10e78 nSctHook.__CxxUnhandledExceptionFilter+62 (4f53506c,77e6b831,4f535074,0)
@[ 7] 0x77e84259 KERNEL32.LocalFlags+1912 (4b12fe80,12ef70,0,fffe0129)
############################################################
FATAL THREAD 6/9 [nsmdreal: 2508: 1a54]
FP=0x4f535fb8, PC=0x601933c7, SP=0x4f535440
stkbase=4f540000, total stksize=397312, used stksize=43968
EAX=0x010f088c, EBX=0x00000000, ECX=0x008e0000, EDX=0x008e0000
ESI=0x4f535b4c, EDI=0x00000000, CS=0x0000001b, SS=0x00000023
DS=0x00000023, ES=0x00000023, FS=0x0000003b, GS=0x00000000 Flags=0x00010202
Exception code: c0000005 (ACCESS_VIOLATION)
############################################################
@[ 1] 0x601933c7 nnotes._Panic@4+631 (60a30013)
@[ 2] 0x601930fc nnotes._Halt@4+28 (4f5301b1)
@[ 3] 0x601159ad nnotes._AccessAllProtected@0+77 ()
@[ 4] 0x6004ff1f nnotes._AccessAll@8+47 (1,1)
@[ 5] 0x60050e15 nnotes._ProcessGlobalEvent@4+21 (d22cfc)
@[ 6] 0x60050d21 nnotes._OSProcessShouldQuit@0+49 ()
Invalid stack frame detected: Invalid frame pointer (BP): 12ef70
<@@ Performance Data → Process Memory Mappings: [nsmdreal: 2508] (summary) (Time 13:55:20) @@>
COMMIT RESERVED TOTAL
PRIVATE: 196.4M 139.6M 336.1M
MAPPED: 1.6G 4.6M 1.6G
IMAGE: 52.0M 0.0K 52.0M
TOTAL: 1.8G 144.3M 1.9G
Totals: Used= 1.9G, Free=57.0M, Fragmented=143.3M, Overall= 2.0G, maxFree= 0.0K, Limit=7ffeffff ( 2.0G)