Autor Thema: C-API domino 10  (Gelesen 3739 mal)

Offline #Mimi

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
C-API domino 10
« am: 03.12.20 - 16:36:29 »
Hallo zusammen,

ich versuch das Problem mal zu beschreiben.

Unter
IBM Domino (r) Server (64 Bit) (Release 9.0.1FP9 for Windows/64)
läufen meine Agneten mit C-Api aufrufen ohne Probleme, war unter 8 auch so.

Unter
IBM Domino (r) Server (64 Bit) (Release 10.0.1FP5 for Windows/64)
Crashed der Server mit bravur. Sprich er bleibt einfach stehen.

Mit den API Calls werden aus einer Datenbank die Deletionstubs ausgelesen und in anderen Datenbanken (nicht die gleiche Replik-IDs, aber die identische UNID, verteiltes System), dass Dokument gesucht und bei einem Treffer gelöscht. Das Löschen erfolgt per LS, Harddelete. Die Stups werden per API ausgelesen.
Beim run über die Stubs bleibt der Server stehen.

Wie muss ich die API-Funktionen bestücken das es auch unter Dom 10 geht. Eine 64Bit weiche ist bereits drin, aber der Domino 10 crashed einfach. Leider finde ich im Netz nichts. Muss ich die Datenbankhandle auch als Double definieren?

Ich denke den eingefleischten ist der Code bekannt.  --> https://codeby.net/threads/how-to-count-and-delete-deletion-stubs.30190/page-2

Code Auszug
Code
	Private Function NSFDbGetNoteInfo(ByVal NoteID As Long, retNoteOID As OID, retModified As TIMEDATE, retNoteClass As Integer) As Integer
		Select Case Me.platform
			Case 1, 8:
				NSFDbGetNoteInfo = W32NSFDbGetNoteInfo(Me.hDb, NoteID, retNoteOID, retModified, retNoteClass)
			Case 2
				NSFDbGetNoteInfo = Os2NSFDbGetNoteInfo(Me.hDb, NoteID, retNoteOID, retModified, retNoteClass)
			Case 4,9
				NSFDbGetNoteInfo = LnxNSFDbGetNoteInfo(Me.hDb, NoteID, retNoteOID, retModified, retNoteClass)
		End Select
	End Function
	
	Private Function IDEntries() As Long
		Select Case Me.platform
			Case 1
				IDEntries = W32IDEntries(Me.hTable)
			Case 2
				IDEntries = Os2IDEntries(Me.hTable)
			Case 4
				IDEntries = LnxIDEntries(Me.hTable)
			Case 8:
				IDEntries = W64IDEntries(Me.hTable64)
			Case 9:
				IDEntries = L64IDEntries(Me.hTable64)  
		End Select
	End Function
	
	Private Function IDScan(ByVal fFirst As Integer, retID As Long) As Integer
		Select Case Me.platform
			Case 1
				IDScan = W32IDScan(Me.hTable, fFirst, retID)
			Case 2
				IDScan = Os2IDScan(Me.hTable, fFirst, retID)
			Case 4
				IDScan = LnxIDScan(Me.hTable, fFirst, retID)
			Case 8:
				IDScan = W64IDScan(Me.hTable64, fFirst, retID)
			Case 9:
				IDScan = L64IDScan(Me.hTable64, fFirst, retID)        
		End Select
	End Function
.... Code Auszug


Declare Function W32ConvertTIMEDATEToText Lib "nnotes" Alias "ConvertTIMEDATEToText"(ByVal intFormat&, ByVal TextFormat&, InputTime As TIMEDATE, ByVal retTextBuffer$, ByVal TextBufferLength%, retTextLength%) As Integer
Declare Function Os2ConvertTIMEDATEToText Lib "inotes" Alias "ConvertTIMEDATEToText"(ByVal intFormat&, ByVal TextFormat&, InputTime As TIMEDATE, ByVal retTextBuffer$, ByVal TextBufferLength%, retTextLength%) As Integer
Declare Function LnxConvertTIMEDATEToText Lib "libnotes.so" Alias "ConvertTIMEDATEToText"(ByVal intFormat&, ByVal TextFormat&, InputTime As TIMEDATE, ByVal retTextBuffer$, ByVal TextBufferLength%, retTextLength%) As Integer

Declare Function W32NSFNoteDelete Lib "nnotes" Alias "NSFNoteDelete" ( ByVal hDb As Long, ByVal NoteID As Long, ByVal UpdateFlags As Integer) As Integer
Declare Function Os2NSFNoteDelete Lib "inotes" Alias "NSFNoteDelete" ( ByVal hDb As Long, ByVal NoteID As Long, ByVal UpdateFlags As Integer ) As Integer
Declare Function LnxNSFNoteDelete Lib "libnotes.so" Alias "NSFNoteDelete" ( ByVal hDb As Long, ByVal NoteID As Long, ByVal UpdateFlags As Integer ) As Integer

Declare Sub W32TimeConstant Lib "nnotes" Alias "TimeConstant"(ByVal TimeConstantType As Integer, td As TIMEDATE)
Declare Sub Os2TimeConstant Lib "inotes" Alias "TimeConstant"(ByVal TimeConstantType As Integer, td As TIMEDATE)
Declare Sub LnxTimeConstant Lib "libnotes.so" Alias "TimeConstant"(ByVal TimeConstantType As Integer, td As TIMEDATE)

Declare Sub W32OSPathNetConstruct Lib "nnotes" Alias "OSPathNetConstruct" ( ByVal portName As LMBCS String, ByVal ServerName As LMBCS String, ByVal FileName As String, ByVal retPathName As String)
Declare Sub Os2OSPathNetConstruct Lib "inotes" Alias "OSPathNetConstruct" ( ByVal portName As LMBCS String, ByVal ServerName As LMBCS String, ByVal FileName As String, ByVal retPathName As String)
Declare Sub LnxOSPathNetConstruct Lib "libnotes.so" Alias "OSPathNetConstruct" ( ByVal portName As LMBCS String, ByVal ServerName As LMBCS String, ByVal FileName As String, ByVal retPathName As String)

Declare Function W32NSFDbOpen Lib "nnotes" Alias "NSFDbOpen" (ByVal PathName As LMBCS String, rethDb As Long) As Integer
Declare Function Os2NSFDbOpen Lib "inotes" Alias "NSFDbOpen" (ByVal PathName As LMBCS String, rethDb As Long) As Integer
Declare Function LnxNSFDbOpen Lib "libnotes.so" Alias "NSFDbOpen" (ByVal PathName As LMBCS String, rethDb As Long) As Integer

Declare Function W32NSFDbClose Lib "nnotes" Alias "NSFDbClose" (ByVal hDb As Long) As Integer
Declare Function Os2NSFDbClose Lib "inotes" Alias "NSFDbClose" (ByVal hDb As Long) As Integer
Declare Function LnxNSFDbClose Lib "libnotes.so" Alias "NSFDbClose" (ByVal hDb As Long) As Integer

Declare Function W32OSLoadString Lib "nnotes" Alias "OSLoadString" (ByVal hModule As Long, ByVal StringCode As Integer, ByVal retBuffer As LMBCS String, ByVal BufferLength As Integer) As Integer
Declare Function Os2OSLoadString Lib "inotes" Alias "OSLoadString" (ByVal hModule As Long, ByVal StringCode As Integer, ByVal retBuffer As LMBCS String, ByVal BufferLength As Integer) As Integer
Declare Function LnxOSLoadString Lib "libnotes.so" Alias "OSLoadString" (ByVal hModule As Long, ByVal StringCode As Integer, ByVal retBuffer As LMBCS String, ByVal BufferLength As Integer) As Integer

Declare Function W64IDEntries Lib "nnotes" Alias "IDEntries"(ByVal hTable As Double) As Long
Declare Function L64IDEntries Lib "libnotes.so" Alias "IDEntries"(ByVal hTable As Double) As Long
Declare Function W32IDEntries Lib "nnotes" Alias "IDEntries"(ByVal hTable As Long) As Long
Declare Function Os2IDEntries Lib "inotes" Alias "IDEntries"(ByVal hTable As Long) As Long
Declare Function LnxIDEntries Lib "libnotes.so" Alias "IDEntries"(ByVal hTable As Long) As Long

Declare Function W64IDScan Lib "nnotes" Alias "IDScan"(ByVal hTable As Double, ByVal fFirst As Integer, retID As Long) As Integer
Declare Function L64IDScan Lib "libnotes.so" Alias "IDScan"(ByVal hTable As Double, ByVal fFirst As Integer, retID As Long) As Integer
Declare Function W32IDScan Lib "nnotes" Alias "IDScan"(ByVal hTable As Long, ByVal fFirst As Integer, retID As Long) As Integer
Declare Function Os2IDScan Lib "inotes" Alias "IDScan"(ByVal hTable As Long, ByVal fFirst As Integer, retID As Long) As Integer
Declare Function LnxIDScan Lib "libnotes.so" Alias "IDScan"(ByVal hTable As Long, ByVal fFirst As Integer, retID As Long) As Integer

Declare Function W64IDDestroyTable Lib "nnotes" Alias "IDDestroyTable" (ByVal hTable As Double) As Integer
Declare Function L64IDDestroyTable Lib "libnotes.so" Alias "IDDestroyTable" (ByVal hTable As Double) As Integer
Declare Function W32IDDestroyTable Lib "nnotes" Alias "IDDestroyTable" (ByVal hTable As Long) As Integer
Declare Function Os2IDDestroyTable Lib "inotes" Alias "IDDestroyTable" (ByVal hTable As Long) As Integer
Declare Function LnxIDDestroyTable Lib "libnotes.so" Alias "IDDestroyTable" (ByVal hTable As Long) As Integer

Declare Function W32NSFDbGetNoteInfo Lib "nnotes" Alias "NSFDbGetNoteInfo"(ByVal hDb As Long, ByVal NoteID As Long, _
retNoteOID As OID, retModified As TIMEDATE, retNoteClass As Integer) As Integer
Declare Function Os2NSFDbGetNoteInfo Lib "inotes" Alias "NSFDbGetNoteInfo"(ByVal hDb As Long, ByVal NoteID As Long, _
retNoteOID As OID, retModified As TIMEDATE, retNoteClass As Integer) As Integer
Declare Function LnxNSFDbGetNoteInfo Lib "libnotes.so" Alias "NSFDbGetNoteInfo"(ByVal hDb As Long, ByVal NoteID As Long, _
retNoteOID As OID, retModified As TIMEDATE, retNoteClass As Integer) As Integer

Declare Function W32NSFDbGetModifiedNoteTable Lib "nnotes" Alias "NSFDbGetModifiedNoteTable" ( _
ByVal hDb As Long, ByVal NoteClassMask As Integer, ByVal Innards1 As Long, ByVal Innards2 As Long,retUntil As TIMEDATE, rethTable As Long) As Integer
Declare Function Os2NSFDbGetModifiedNoteTable Lib "inotes" Alias "NSFDbGetModifiedNoteTable" (ByVal hDb As Long, ByVal NoteClassMask As Integer, ByVal Innards1 As Long, ByVal Innards2 As Long,retUntil As TIMEDATE, rethTable As Long) As Integer
Declare Function LnxNSFDbGetModifiedNoteTable Lib "libnotes.so" Alias "NSFDbGetModifiedNoteTable" (ByVal hDb As Long, ByVal NoteClassMask As Integer, ByVal Innards1 As Long, ByVal Innards2 As Long,retUntil As TIMEDATE, rethTable As Long) As Integer

Declare Function W64NSFDbGetModifiedNoteTable Lib "nnotes" Alias "NSFDbGetModifiedNoteTable" (ByVal hDb As Long, ByVal NoteClassMask As Long, ByVal sinceDate As Double, retUntil As TIMEDATE, rethTable As Double) As Integer
Declare Function L64NSFDbGetModifiedNoteTable Lib "libnotes.so" Alias "NSFDbGetModifiedNoteTable" (ByVal hDb As Long, ByVal NoteClassMask As Long, ByVal sinceDate As Double, retUntil As TIMEDATE, rethTable As Double) As Integer
« Letzte Änderung: 04.12.20 - 08:05:44 von Tode »

Offline Tode

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: C-API domino 10
« Antwort #1 am: 04.12.20 - 08:04:26 »
Bist Du sicher, dass der Server beim "Run über die Stubs" hängen bleibt?

Ich sehe hier dummerweise keinen "run über Stubs" im geposteten Quellcode (by the way: für code gibt es den code- Tag, dann ist das auch sauber formatiert, habe das mal reineditiert).

Ich würde hier -ausnahmsweise- mit Prints arbeiten... einen Print for jede Zeile Deines Codes... dann kannst Du uns GENAU sagen, wo der Fehler passiert. Ausserdem solltest Du auch den relevanten Part (nämlich der Cycle über die Stubs) zeigen: Vielleicht hast Du ja eine Endlosschleife oder einen Mem- Leak, der nur unter Domino 10 zum Tragen kommt...
« Letzte Änderung: 04.12.20 - 08:06:06 von Tode »
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline #Mimi

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: C-API domino 10
« Antwort #2 am: 04.12.20 - 09:51:18 »
Hallo Tode,

danke für deine Antwort. Beim Remotedebugging (ziemlich aufwendig, wenn das dann auch mal klappt) ist der Server aus der Funktion getNextStub(..) nicht mehr zurückgekehrt. An ein Mem-leak hab ich auch schon gedacht, das würde zumindest erklären warum, auch an einem Domino10 SP2, der Kumpel einfach stehen bleibt. Nun, dann bleiben mir nur noch die die Prints. Melde mich mit Details.


Code
Public Class DeletionStubCollection As DeletionStub
....

    Function getNextStub(stub As DeletionStub) As DeletionStub
        If Not stub.ParentRef Is Me Then
            Error 7000,"Это stub из другой коллекции"
        End If
        On Error GoTo ErrH
        Set getNextStub = New DeletionStub(Me.session)
        Set getNextStub.ParentRef = Me
        getNextStub.currNoteID = stub.currNoteID
        If IDScan(False, getNextStub.currNoteID) Then
            If Not Me.srchNext(getNextStub) Then Delete getNextStub
        Else
            Delete getNextStub
        End If
Eos:        Exit Function
ErrH:
        On Error GoTo 0
        Error Err, "GetNextStub.DeletionStubCollection("& CStr(Erl) &"): "& Error$
        Resume Eos
    End Function

....

Auszug aus dem nsd_W64_XXXXDOMINO10_2020_12_02@15_48_12.log

############################################################
### thread 1/5: [   nAMgr:  18ac:  01fc] FATAL THREAD
### FP=0x950E349E58, PC=0x7FFE890BF204, SP=0x950E349E58
### stkbase=0x950E350000, total stksize=77824, used stksize=25000
### EAX=0x00000004, EBX=0x00000000, ECX=0x000004c4, EDX=0x00000000
### ESI=0x950E349E88, EDI=0x000004c4, CS=0x00000033, SS=0x0000002b
### DS=0x00000000, ES=0x00000000, FS=0x00000000, GS=0x00000000 Flags=0x1700000246
############################################################
 [ 1] 0x7FFE890BF204 ntdll.ZwWaitForSingleObject+20 (10,0,0,950E349F70)
 [ 2] 0x7FFE85E38973 KERNELBASE.WaitForSingleObjectEx+147 (10,950E34A620,7FFE00000000,4c4)
@[ 3] 0x7FFE48E8DA60 nnotes.OSRunExternalScript+1808 (0,0,424,0)
@[ 4] 0x7FFE48E89E2C nnotes.FRTerminateWindowsResources+1532 (0,1F09B1BC1F8,0,1)
@[ 5] 0x7FFE48E8B9B3 nnotes.OSFaultCleanupExt+1395 (0,7FFE48EF6B40,950E34FBA0,950E34B8E0)
@[ 6] 0x7FFE48E8B437 nnotes.OSFaultCleanup+23 (7FFE48EF6B40,950E34AFC0,0,0)
@[ 7] 0x7FFE48EF6CC6 nnotes.OSNTUnhandledExceptionFilter+390 (950E34B8E0,950E34FBA0,950E34B8E0,950E34B9D0)
 [ 8] 0x7FFE85E871DC KERNELBASE.UnhandledExceptionFilter+444 (0,7FFE89161FF8,0,0)
 [ 9] 0x7FFE890C7B93 ntdll.memset+7187 (950E34BC30,7FFE7A429D30,950E34C570,950E34BEA8)
 [10] 0x7FFE890AF776 ntdll.__C_specific_handler+150 (0,950E34BE90,0,950E34BE90)
 [11] 0x7FFE890C41BF ntdll.__chkstk+287 (950E34BE90,0,7FFE88E2BC3C,7FFE88D80000)
 [12] 0x7FFE89024BEF ntdll.RtlWalkFrameChain+5311 (0,0,50000FFFFFFFF,0)
 [13] 0x7FFE890C2F2E ntdll.KiUserExceptionDispatcher+46 (1F09C83E488,1F09C83CFF0,74,125863200515179)
@[14] 0x7FFE49D48CED nnotes.CurrentTIMEDATE+253 (125863200515179,0,950E34C8E0,950E34C898)
@[15] 0x7FFE49E94EDD nnotes.DbGetModifiedNoteTableExt+1437 (950E34CBE0,6780648FFFFFFFF,0,6780648FFFFFFFF)
@[16] 0x7FFE49973B0F nnotes.NSFDbGetModifiedNoteTable+223 (0,1F0A2856D60,950E34CDE0,950E34CEB0)
@[17] 0x7FFE4A3CEDB2 nnotes.LSsThread::DoCCallout+4834 (ffff,1F0B0FA1DC0,7,1F0A2856D60)
@[18] 0x7FFE4A3CDA6F nnotes.LSsThread::CProdCallFunction+399 (1F0A2856D60,950E34D858,1F0B0FA1460,7fff)
@[19] 0x7FFE4A394B6B nnotes.LSsThread::NRun+9915 (1F09B1B2120,950E340003,0,51c328)
@[20] 0x7FFE4A395501 nnotes.LSsThread::Run+449 (1F0B0FA1460,1F0A0AD5AA8,0,2)
@[21] 0x7FFE4A340718 nnotes.LSIThread::RunInternal+104 (125863200515179,1F0A0AD5AA8,1F0A0AD9C28,125863200523BCA)
@[22] 0x7FFE4A3409D2 nnotes.LSIThread::RunToCompletion+386 (1F0A0AC1828,1F0A0AC1828,950E34DBC0,125863200523BCA)
@[23] 0x7FFE4A33B87E nnotes.CLSIDocument::RunScript+878 (0,1F0A0ACF5A8,950E34EAB0,1F0A0ACF5A8)
@[24] 0x7FFE495DFF08 nnotes.CRawActionLotusScript::Run+648 (200,9500000014,950E34EAB0,3656C6900000014)
@[25] 0x7FFE495D8757 nnotes.CRawAction::Execute+391 (1F0A0AD0028,0,1F000000000,0)
@[26] 0x7FFE495D45EC nnotes.CAssistant::Run+4236 (125863200000000,950E34EA78,1F0A0AC1828,1F000000000)
@[27] 0x7FFE787D5334 namgrdll.RunTask+2900 (950E34F6B8,7FFE0000338E,7FFE00000000,1F000000000)
@[28] 0x7FFE787D46D9 namgrdll.ProcessMessage+361 (0,1,140,1F09C6B9B90)
@[29] 0x7FFE787D3D2B namgrdll.ExecutiveMain+315 (1F09B175AA0,1,3,1)
@[30] 0x7FFE787D6C3C namgrdll.AddInMain+412 (0,1F09B175A88,0,0)
@[31] 0x7FF773CC1037 nAMgr.NotesMain+55 (0,0,7FF773CC0000,950E34FB10)
@[32] 0x7FF773CC11D0 nAMgr.notes_main+336 (7FFE8522B570,0,0,3)
@[33] 0x7FF773CC1078 nAMgr.main+24 (0,0,0,0)
@[34] 0x7FF773CC14E0 nAMgr.__scrt_common_main_seh+268 (0,0,0,0)
 [35] 0x7FFE88D97974 KERNEL32.BaseThreadInitThunk+20 (0,0,0,0)
 [36] 0x7FFE8907A0B1 ntdll.RtlUserThreadStart+33 (0,0,0,0)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: C-API domino 10
« Antwort #3 am: 04.12.20 - 09:57:19 »
Das Problem habe ich im Zusammenhang mit anderen API calls auf V10 auch schon gehabt.

Code
 [ 9] 0x7FFE890C7B93 ntdll.memset+7187 (950E34BC30,7FFE7A429D30,950E34C570,950E34BEA8)

Da ist irgend etwas am internen Memory Management faul.
Auf V9.x läuft der Code, auf V10.x nicht. Das passt zu meinen Beobachtungen.

Wenn Du die Möglichkeit hast, probiere es mal unter V11.x . Da sollte es wieder laufen.

Ich finde aber leider nirgendwo einen SPR oder sonstigen Anhaltspunkt zu einem möglichen Fix o.ä.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline #Mimi

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: C-API domino 10
« Antwort #4 am: 04.12.20 - 10:06:42 »
Das Problem habe ich im Zusammenhang mit anderen API calls auf V10 auch schon gehabt.

Code
 [ 9] 0x7FFE890C7B93 ntdll.memset+7187 (950E34BC30,7FFE7A429D30,950E34C570,950E34BEA8)

Da ist irgend etwas am internen Memory Management faul.
Auf V9.x läuft der Code, auf V10.x nicht. Das passt zu meinen Beobachtungen.

Wenn Du die Möglichkeit hast, probiere es mal unter V11.x . Da sollte es wieder laufen.

Ich finde aber leider nirgendwo einen SPR oder sonstigen Anhaltspunkt zu einem möglichen Fix o.ä.

Hallo Eknori,

ja das kann ich testen. Melde mich.

Offline #Mimi

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: C-API domino 10
« Antwort #5 am: 04.12.20 - 11:29:24 »
Also unter 11 das gleiche, der Domino 11 bleibt auch einfach stehen.

[0440:000A-0E00] HCL Domino (r) Server (64 Bit) (Release 11.0.1FP1 for Windows/64) 04.12.2020 11:25:47
Code


############################################################
### thread 15/16: [   nAMgr:  0444:  0e44] FATAL THREAD
### FP=0xFE623FA498, PC=0x7FFD783AF7E4, SP=0xFE623FA498
### stkbase=0xFE62400000, total stksize=1048576, used stksize=23400
### EAX=0x00000004, EBX=0x00000000, ECX=0x000007b8, EDX=0x00000000
### ESI=0xFE623FA4C8, EDI=0x000007b8, CS=0x00000033, SS=0x0000002b
### DS=0x00000000, ES=0x00000000, FS=0x00000000, GS=0x00000000 Flags=0x1700000246
############################################################
 [ 1] 0x7FFD783AF7E4 ntdll.ZwWaitForSingleObject+20 (10,0,0,FE623FA5B0)
 [ 2] 0x7FFD743F8973 KERNELBASE.WaitForSingleObjectEx+147 (10,FE623FAC60,7FFD00000000,7b8)
@[ 3] 0x7FFD67FDD470 nnotes.OSRunExternalScript+1808 (0,0,424,0)
@[ 4] 0x7FFD67FD983C nnotes.FRTerminateWindowsResources+1532 (0,0,0,1)
@[ 5] 0x7FFD67FDB3C3 nnotes.OSFaultCleanupExt+1395 (0,7FFD68047970,FE623FFE90,FE623FBF20)
@[ 6] 0x7FFD67FDAE47 nnotes.OSFaultCleanup+23 (7FFD68047970,27BDC6CD260,FE623FB440,7FFD65F6BA2C)
@[ 7] 0x7FFD68047AF6 nnotes.OSNTUnhandledExceptionFilter+390 (FE623FBF20,FE623FFE90,FE623FBF20,FE623FBFD0)
 [ 8] 0x7FFD744471DC KERNELBASE.UnhandledExceptionFilter+444 (FE00000000,7FFD784533D4,0,0)
 [ 9] 0x7FFD783B820B ntdll.memset+7307 (0,FE623FBF30,FE623FCBB0,FE623FC4E8)
 [10] 0x7FFD7839FD56 ntdll.__C_specific_handler+150 (0,FE623FC4D0,0,FE623FC4D0)
 [11] 0x7FFD783B479F ntdll.__chkstk+287 (FE623FC4D0,0,7FFD75BABC3C,7FFD75B00000)
 [12] 0x7FFD78314BEF ntdll.RtlWalkFrameChain+5311 (17ee,0,27B00000000,2)
 [13] 0x7FFD783B350E ntdll.KiUserExceptionDispatcher+46 (27B00000000,7FFD6801223C,FE000000C5,7FFD00000005)
@[14] 0x7FFD67FBD0BD nnotes.CvtTIMEDATEToText+221 (27BDCACB800,0,0,18)
@[15] 0x7FFD687AED81 nnotes.ConvertTIMEDATEToText+65 (27BADD0FFF4,27BDC875AF8,FE623FD380,FE623FD330)
@[16] 0x7FFD6954A162 nnotes.LSsThread::DoCCallout+4834 (ffff,27BDCAFD1C0,7,27BDC9690F0)
@[17] 0x7FFD69548E1F nnotes.LSsThread::CProdCallFunction+399 (27BDC9690F0,FE623FDCD8,27BDCAFC500,7fff)
@[18] 0x7FFD6950FEE2 nnotes.LSsThread::NRun+9906 (27BC88019E0,FE623F0002,2230,454a49)
@[19] 0x7FFD69510871 nnotes.LSsThread::Run+449 (27BDCAFC500,27BB2309E28,0,2)
@[20] 0x7FFD694BB7A8 nnotes.LSIThread::RunInternal+104 (27BB2309E28,27BB2309E28,0,0)
@[21] 0x7FFD694BBA62 nnotes.LSIThread::RunToCompletion+386 (27BB22F5528,27BB22F5528,FE623FE040,0)
@[22] 0x7FFD694B690E nnotes.CLSIDocument::RunScript+878 (0,27BB22F3268,27BB22F6828,27BB22F3268)
@[23] 0x7FFD68745BF8 nnotes.CRawActionLotusScript::Run+648 (200,FE00000017,27BB22F6828,3656C6900000017)
@[24] 0x7FFD6873E3E7 nnotes.CRawAction::Execute+391 (27BB22F6028,0,27B00000000,0)
@[25] 0x7FFD6873A27C nnotes.CAssistant::Run+4236 (27B00000000,FE623FEF00,27BB22F5528,FE00000000)
@[26] 0x7FFD6875AC39 nnotes.AgentRun+1817 (1,27B00000000,0,27B00000010)
@[27] 0x7FFD5D648670 namgrdll.ExecConsoleAgent+320 (27B00000101,338e,27BB22F6828,27BB22F6028)
@[28] 0x7FFD67FEFF78 nnotes.ThreadWrapper+264 (0,0,0,0)
 [29] 0x7FFD75B17974 KERNEL32.BaseThreadInitThunk+20 (0,0,0,0)
 [30] 0x7FFD7837A271 ntdll.RtlUserThreadStart+33 (0,0,0,0)



Offline #Mimi

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: C-API domino 10
« Antwort #6 am: 04.12.20 - 15:39:03 »
Update

Nach dem ich nun die Prints in den Code eingerabeitet habe und der Domino 10 weiter gecrasht ist, konnte ich die stelle ausmachen. Er bliebt immer bei der Funktion IDSCAN stehen. Komisch ist das der Server noch den Start der Funktion '++++ Function IDScan' geschrieben, dann nichts mehr. Win 64Bit ist Platform 8

Code
	Private Function IDScan(ByVal fFirst As Integer, retID As Long) As Integer
		If DEBUG_PRINT Then Print " ++++ Function IDScan "
		
		Select Case Me.platform
			Case 1
				If DEBUG_PRINT Then Print " IDScan = W32IDScan(Me.hTable, fFirst, retID) "
				IDScan = W32IDScan(Me.hTable, fFirst, retID)
			Case 2
				IDScan = Os2IDScan(Me.hTable, fFirst, retID)
			Case 4
				IDScan = LnxIDScan(Me.hTable, fFirst, retID)
			Case 8:
				If DEBUG_PRINT Then Print " IDScan = W64IDScan(Me.hTable64, fFirst, retID) "
				IDScan = W64IDScan(Me.hTable64, fFirst, retID)
			Case 9:
				IDScan = L64IDScan(Me.hTable64, fFirst, retID)        
		End Select
		If DEBUG_PRINT Then Print " ---- Function IDScan "
	End Function

So, nun nach unzähligen Crashes und Konsistenscheck vom Server an der Datenbank läuft der Code plötzlich durch. :-: :-: :-:
Auch nach dem ich die ganzen prints nicht mehr gemacht werden.

Unter Domino 11 knallt der Server mit bravur weiter.
Code

[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ++++ Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  IDScan = W64IDScan(Me.hTable64, fFirst, retID) 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ---- Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  DO - Schleife Me.currentNum = 3567
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  Loop Until Me.IDScan(False, stub.currNoteID)<>1 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ++++ Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  IDScan = W64IDScan(Me.hTable64, fFirst, retID) 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ---- Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  DO - Schleife Me.currentNum = 3568
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  Loop Until Me.IDScan(False, stub.currNoteID)<>1 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ++++ Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  IDScan = W64IDScan(Me.hTable64, fFirst, retID) 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ---- Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  DO - Schleife Me.currentNum = 3569
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  Loop Until Me.IDScan(False, stub.currNoteID)<>1 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ++++ Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  IDScan = W64IDScan(Me.hTable64, fFirst, retID) 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ---- Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  DO - Schleife Me.currentNum = 3570
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  Loop Until Me.IDScan(False, stub.currNoteID)<>1 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ++++ Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  IDScan = W64IDScan(Me.hTable64, fFirst, retID) 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ---- Function IDScan 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  DO - Schleife Me.currentNum = 3571
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  Loop Until Me.IDScan(False, stub.currNoteID)<>1 
[14B0:0005-1698] 04.12.2020 12:59:49   Agent Manager: Agent printing:  ++++ Function IDScan








############################################################
### thread 15/16: [   nAMgr:  14b0:  1698] FATAL THREAD
### FP=0x4FBBFFA1D8, PC=0x7FFD783AF7E4, SP=0x4FBBFFA1D8
### stkbase=0x4FBC000000, total stksize=1048576, used stksize=24104
### EAX=0x00000004, EBX=0x00000000, ECX=0x000007a0, EDX=0x00000000
### ESI=0x4FBBFFA208, EDI=0x000007a0, CS=0x00000033, SS=0x0000002b
### DS=0x00000000, ES=0x00000000, FS=0x00000000, GS=0x00000000 Flags=0x1700000246
############################################################
 [ 1] 0x7FFD783AF7E4 ntdll.ZwWaitForSingleObject+20 (10,0,0,4FBBFFA2F0)
 [ 2] 0x7FFD743F8973 KERNELBASE.WaitForSingleObjectEx+147 (10,4FBBFFA9A0,7FFD00000000,7a0)
@[ 3] 0x7FFD67FDD470 nnotes.OSRunExternalScript+1808 (0,0,424,0)
@[ 4] 0x7FFD67FD983C nnotes.FRTerminateWindowsResources+1532 (0,0,0,1)
@[ 5] 0x7FFD67FDB3C3 nnotes.OSFaultCleanupExt+1395 (0,7FFD68047970,4FBBFFFBD0,4FBBFFBC60)
@[ 6] 0x7FFD67FDAE47 nnotes.OSFaultCleanup+23 (7FFD68047970,219DD1FE6C0,4FBBFFB180,7FFD65F6BA2C)
@[ 7] 0x7FFD68047AF6 nnotes.OSNTUnhandledExceptionFilter+390 (4FBBFFBC60,4FBBFFFBD0,4FBBFFBC60,7)
 [ 8] 0x7FFD744471DC KERNELBASE.UnhandledExceptionFilter+444 (200000047,7FFD784533D4,0,0)
 [ 9] 0x7FFD783B820B ntdll.memset+7307 (0,4FBBFFC6F0,4FBBFFC8F0,4FBBFFC228)
 [10] 0x7FFD7839FD56 ntdll.__C_specific_handler+150 (0,4FBBFFC210,0,4FBBFFC210)
 [11] 0x7FFD783B479F ntdll.__chkstk+287 (4FBBFFC210,0,7FFD75BABC3C,7FFD75B00000)
 [12] 0x7FFD78314BEF ntdll.RtlWalkFrameChain+5311 (17ee,0,21900000000,1)
 [13] 0x7FFD783B350E ntdll.KiUserExceptionDispatcher+46 (21900000000,7FFD6801223C,16320200000009A,7FFD00000005)
@[14] 0x7FFD67FBD0BD nnotes.CvtTIMEDATEToText+221 (219DD5E4560,0,0,18)
@[15] 0x7FFD687AED81 nnotes.ConvertTIMEDATEToText+65 (219B2AC0704,219DD3AF958,4FBBFFD0C0,4FBBFFD070)
@[16] 0x7FFD6954A162 nnotes.LSsThread::DoCCallout+4834 (ffff,219DD615F20,7,219DD481E50)
@[17] 0x7FFD69548E1F nnotes.LSsThread::CProdCallFunction+399 (219DD481E50,4FBBFFDA18,219DD615260,7fff)
@[18] 0x7FFD6950FEE2 nnotes.LSsThread::NRun+9906 (219C9551A20,4FBBFF0002,2270,a051d0)
@[19] 0x7FFD69510871 nnotes.LSsThread::Run+449 (219DD615260,219B70B9B28,0,2)
@[20] 0x7FFD694BB7A8 nnotes.LSIThread::RunInternal+104 (219B70B9B28,219B70B9B28,0,0)
@[21] 0x7FFD694BBA62 nnotes.LSIThread::RunToCompletion+386 (219B70A3328,219B70A3328,4FBBFFDD80,0)
@[22] 0x7FFD694B690E nnotes.CLSIDocument::RunScript+878 (0,219B70A32E8,219B70A6028,219B70A32E8)
@[23] 0x7FFD68745BF8 nnotes.CRawActionLotusScript::Run+648 (200,4F00000017,219B70A6028,3656C6900000017)
@[24] 0x7FFD6873E3E7 nnotes.CRawAction::Execute+391 (219B70A5828,0,21900000000,0)
@[25] 0x7FFD6873A27C nnotes.CAssistant::Run+4236 (21900000000,4FBBFFEC40,219B70A3328,4F00000000)
@[26] 0x7FFD6875AC39 nnotes.AgentRun+1817 (1,21900000000,0,21900000010)
@[27] 0x7FFD5E238670 namgrdll.ExecConsoleAgent+320 (2190000010B,338e,219B70A6028,219B70A5828)
@[28] 0x7FFD67FEFF78 nnotes.ThreadWrapper+264 (0,0,0,0)
 [29] 0x7FFD75B17974 KERNEL32.BaseThreadInitThunk+20 (0,0,0,0)
 [30] 0x7FFD7837A271 ntdll.RtlUserThreadStart+33 (0,0,0,0)



Leider bin ich immer noch nicht schlauer und habe ein ungutes gefühl, das System unter Domino 10 oder 11 freizugeben.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: C-API domino 10
« Antwort #7 am: 04.12.20 - 18:25:56 »
Die crashes sind zwar ähnlich, aber doch unterschiedlich. Gemeinsam bei beiden ist die Konvertierung eines Zeitwertes und ein memory alloc kurz vor dem Crash.

Starte mal NSD im monitor mode . nsd -monitor. Dann wiederhole deinen Test. Neben den NSD ... log files findest Du im Verzeichnis nsd.notes weitere files, die geneuere Ursachen zum Fehler enthalten (können ).


Ich mache solche Sachen schon lange nicht mehr mit LS2CAPI. Entweder schreibe ich mir eine Funktion komplett in c++ und kapsel die in einer DLL oder ich verwende Java. Suche mal nach Domino JNA auf GitHub.
domino JNA hat zudem den Vorteil, dass man mit callbacks arbeiten kann. Das geht mit LS2CAPI nicht.
« Letzte Änderung: 04.12.20 - 18:34:14 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline #Mimi

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
Re: C-API domino 10
« Antwort #8 am: 07.12.20 - 09:43:44 »
Danke für die Tip's nsd-monitor. 

Ich werde nächste Woche noch ein paar Tests machen und mir Domino JNA anschauen, im ersten Überflug hab ich gesehen das auch dort, der Zugriff auf die Deletionstubs geben sein soll.

Auf dem Domino 10 läuft der Code wohl jetzt stabil, sprich der Server bleibt nicht mehr stehen und die Agenten werden ausgeführt. Aber es wurden über das WE auch nichts getan. Das Release wird nun weiter auf Domino 9 getestet und Domino 10 erstmal ausgesetzt (unbestimmt).




 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz