Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: Help with Access violation in ntdll



Permlink Replies: 9 - Last Post: Jan 27, 2018 3:25 PM Last Post By: Joel Zimmer Threads: [ Previous | Next ]
Joel Zimmer

Posts: 68
Registered: 9/24/01
Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 23, 2018 1:55 PM
I am getting the following accessviolations on a system that is hit really hard.

Exception message : Access violation at address 77EC0E92 in module 'ntdll.dll'. Write of address 00270088
Exception class : EAccessViolation
Exception address : 77EC0E92

Here is the call stack. It looks like it might be something in the RtlEnterCriticalSection. Any ideas on this one?

(0003FE92){ntdll.dll } [77EC0E92] RtlEnterCriticalSection + $12
(000C95C5){IsWebDesk_Base_8099.dll} [0218A5C5] System.Classes.TReader.Read + $3D
(000CADE5){IsWebDesk_Base_8099.dll} [0218BDE5] System.Classes.TReader.ReadProperty + $1B5
(00005FC3){IsWebDesk_Base_8099.dll} [020C6FC3] System.@ReallocMem + $3F
(0000CA02){IsWebDesk_Base_8099.dll} [020CDA02] System.DynArraySetLength + $16E
(000E0E06){IsWebDesk_Base_8099.dll} [021A1E06] System.Classes.{System.Generics.Collections}TList<System.Classes.TComponent>.InternalCompare + $A
(000502D2){IsWebDesk_Base_8099.dll} [021112D2] System.Generics.Collections.TListHelper.DoIndexOfFwd4 + $2A
(0000E4CC){IsWebDesk_Base_8099.dll} [020CF4CC] System.@IntfClear + $10
(0000BB9C){IsWebDesk_Base_8099.dll} [020CCB9C] System.@FinalizeArray + $E4
(0000BA8C){IsWebDesk_Base_8099.dll} [020CCA8C] System.@FinalizeRecord + $24
(000087F8){IsWebDesk_Base_8099.dll} [020C97F8] System.TMonitor.Destroy + $0
(00007F1F){IsWebDesk_Base_8099.dll} [020C8F1F] System.TObject.CleanupInstance + $1F
(00005F70){IsWebDesk_Base_8099.dll} [020C6F70] System.@FreeMem + $4
(00007D18){IsWebDesk_Base_8099.dll} [020C8D18] System.TObject.FreeInstance + $C
(00005FC3){IsWebDesk_Base_8099.dll} [020C6FC3] System.@ReallocMem + $3F
(000D875E){IsWebDesk_Base_8099.dll} [0219975E] System.Classes.TComponent.FindSortedComponent + $42
(009D7896){IsWebDesk_Base_8099.dll} [02A98896] uROComponent.TROComponent.LockList (Line 92, "uROComponent.pas" + 1) + $A
(009D7937){IsWebDesk_Base_8099.dll} [02A98937] uROComponent.TROComponent.RORemoveNotification (Line 112, "uROComponent.pas" + 1) + $3
(009D7BF9){IsWebDesk_Base_8099.dll} [02A98BF9] uROComponent.TROComponent.RORemoveFreeNotification (Line 160, "uROComponent.pas" + 1) + $4
(00B215C3){IsWebDesk_Base_8099.dll} [02BE25C3] uDADataTable.TDADataSource.SetDataTable (Line 5859, "uDADataTable.pas" + 2) + $6
(00095526){IsWebDesk_Base_8099.dll} [02156526] System.TypInfo.SetOrdProp + $3A
(000C87C5){IsWebDesk_Base_8099.dll} [021897C5] System.Classes.TPropFixup.ResolveReference + $9
(0048620B){IsWebDesk_Base_8099.dll} [0254720B] IWClassesFix.GlobalFixupReferences (Line 191, "IWClassesFix.pas" + 20) + $7
(000CB68F){IsWebDesk_Base_8099.dll} [0218C68F] System.Classes.TReader.ReadRootComponent + $2A3
(000C576E){IsWebDesk_Base_8099.dll} [0218676E] System.Classes.TStream.ReadComponent + $32
(000BD2F3){IsWebDesk_Base_8099.dll} [0217E2F3] System.Classes.InternalReadComponentRes + $57
(000BEA03){IsWebDesk_Base_8099.dll} [0217FA03] System.Classes.InitComponent + $5F
(000BE9D8){IsWebDesk_Base_8099.dll} [0217F9D8] System.Classes.InitComponent + $34
(000BEA91){IsWebDesk_Base_8099.dll} [0217FA91] System.Classes.InitInheritedComponent + $61
(004EBBA9){IsWebDesk_Base_8099.dll} [025ACBA9] IWBaseForm.TIWBaseForm.Create (Line 213, "IWBaseForm.pas" + 9) + $9
(00007D03){IsWebDesk_Base_8099.dll} [020C8D03] System.TObject.NewInstance + $13
(004C423D){IsWebDesk_Base_8099.dll} [0258523D] IWForm.TIWForm.Create (Line 233, "IWForm.pas" + 1) + $4
(0163252D){IsWebDesk_Base_8099.dll} [036F352D] frmWorkList1.TfrmWorkList.PickButtonItemClick (Line 8578, "frmWorkList1.pas" + 52) + $10
(004A908C){IsWebDesk_Base_8099.dll} [0256A08C] IWControl.TIWCustomControl.DoOnAsyncClick (Line 478, "IWControl.pas" + 4) + $E
(004F64DF){IsWebDesk_Base_8099.dll} [025B74DF] IWApplication.TIWCallback.PerformCallBack (Line 2445, "IWApplication.pas" + 9) + $6
(004F629A){IsWebDesk_Base_8099.dll} [025B729A] IWApplication.TIWCallBacks.PerformCallBack (Line 2405, "IWApplication.pas" + 8) + $0
(004F0FC3){IsWebDesk_Base_8099.dll} [025B1FC3] IWApplication.TIWApplication.PerformCallBack (Line 544, "IWApplication.pas" + 3) + $A
(004C89C8){IsWebDesk_Base_8099.dll} [025899C8] IWForm.TIWForm.DoExecuteForm (Line 1119, "IWForm.pas" + 63) + $E
(004EC1D6){IsWebDesk_Base_8099.dll} [025AD1D6] IWBaseForm.TIWBaseForm.ExecuteForm (Line 381, "IWBaseForm.pas" + 9) + $5
(004F331E){IsWebDesk_Base_8099.dll} [025B431E] IWApplication.TIWApplication.ExecuteActiveForm (Line 1279, "IWApplication.pas" + 37) + $2
(004F2FE5){IsWebDesk_Base_8099.dll} [025B3FE5] IWApplication.TIWApplication.ProcessForm (Line 1159, "IWApplication.pas" + 3) + $4
(00565DAA){IsWebDesk_Base_8099.dll} [02626DAA] IWServerSession.TIWServerSession.ExecuteCallback (Line 288, "IWServerSession.pas" + 4) + $9
(005680FF){IsWebDesk_Base_8099.dll} [026290FF] IWServerSession.TIWServerSession.DoExecuteSession (Line 727, "IWServerSession.pas" + 37) + $2
(0056857D){IsWebDesk_Base_8099.dll} [0262957D] IWServerSession.TIWServerSession.ExecuteSession (Line 810, "IWServerSession.pas" + 44) + $7
(0055748A){IsWebDesk_Base_8099.dll} [0261848A] IWServer.TIWServer.ExecuteUrl (Line 526, "IWServer.pas" + 69) + $7
(0055797C){IsWebDesk_Base_8099.dll} [0261897C] IWServer.TIWServer.Execute (Line 590, "IWServer.pas" + 11) + $11
(00564F6F){IsWebDesk_Base_8099.dll} [02625F6F] IWServerSession.HttpExecute (Line 88, "IWServerSession.pas" + 2) + $3
(0056B4DC){IsWebDesk_Base_8099.dll} [0262C4DC] IW.ISAPI.Extension.TIWIsapiExtension.ExecuteHook (Line 528, "IW.Isapi.Extension.pas" + 4) + $C
(0056B2D8){IsWebDesk_Base_8099.dll} [0262C2D8] IW.ISAPI.Extension.TIWIsapiExtension.HandleRequest (Line 503, "IW.Isapi.Extension.pas" + 4) + $13
(0056DC2C){IsWebDesk_Base_8099.dll} [0262EC2C] IWInitISAPI.HttpExtensionProc (Line 230, "IWInitISAPI.pas" + 9) + $3
(0056DEE4){IsWebDesk_Base_8099.dll} [0262EEE4] IW.Isapi.ThreadPool.WorkerFunction (Line 88, "IW.Isapi.ThreadPool.pas" + 12) + $3
(00009CA0){IsWebDesk_Base_8099.dll} [020CACA0] System.ThreadWrapper + $28
Eitan Arbel

Posts: 508
Registered: 2/24/13
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 23, 2018 5:48 PM   in response to: Joel Zimmer in response to: Joel Zimmer
is it possible that the AV is caused because the ntdll.dll is damaged(infected?) or missing, and not from the iw app?

here is what i found regarding the ntdll.dll :

What is the ntdll.dll file?
https://www.computerhope.com/issues/ch000960.htm

How to Fix Ntdll.dll Errors :
https://www.lifewire.com/how-to-fix-ntdll-dll-errors-2624474

hope it helps
Joel Zimmer

Posts: 68
Registered: 9/24/01
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 23, 2018 6:38 PM   in response to: Eitan Arbel in response to: Eitan Arbel
Eitan Arbel wrote:
is it possible that the AV is caused because the ntdll.dll is damaged(infected?) or missing, and not from the iw app?

here is what i found regarding the ntdll.dll :

What is the ntdll.dll file?
https://www.computerhope.com/issues/ch000960.htm

How to Fix Ntdll.dll Errors :
https://www.lifewire.com/how-to-fix-ntdll-dll-errors-2624474

hope it helps

Thanks, but the ntdll.dll is not damaged. I am running the application on multiple servers and they all have the same issue so I don't think they would all be bad. Infact, some of the servers are 2012 and some 2008. They both are showing the same issue.
Shane Stump

Posts: 138
Registered: 2/16/01
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 23, 2018 6:11 PM   in response to: Joel Zimmer in response to: Joel Zimmer
Howdy Joel!

Is it possible any of the objects being accessed have already been freed? That is normally when I have seen those type of errors.

All the best,

Shane
Joel Zimmer

Posts: 68
Registered: 9/24/01
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 23, 2018 6:46 PM   in response to: Shane Stump in response to: Shane Stump
Shane Stump wrote:
Howdy Joel!

Is it possible any of the objects being accessed have already been freed? That is normally when I have seen those type of errors.

All the best,

Shane

What you are saying is normally true, but I did some more research and it is happening when the forms are being created. The thing is we have been using a frame work for a very long time without any issues so it is either in Delphi, IW, CG or something we have introduced.
Shane Stump

Posts: 138
Registered: 2/16/01
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 23, 2018 6:51 PM   in response to: Joel Zimmer in response to: Joel Zimmer
Howdy Joel!

I have had SIMILAR issues with CGDevTools with every version AFTER 4.0.1.83. I have since rolled back to it and all is well again.

You might want to try that if possible.

All the best,

Shane
Alexandre Machado

Posts: 1,754
Registered: 8/10/13
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 24, 2018 12:14 AM   in response to: Joel Zimmer in response to: Joel Zimmer
Joel Zimmer wrote:
I am getting the following accessviolations on a system that is hit really hard.

For sure this is happening while a IWForm is loading (reading from DFM). Is this TROComponent a RemObjects connection of some kind?
Does it have any link with another object in another form/data module?

If so, remove this link at designtime and set the link at runtime, via code. For instance, let's say your TDataSet references a TDBConnection in another DataModule. Then remove the design time link between the two, and replace it with code that does the same, using OnCreate event of the IWForm.

I strongly discourage the design time linkage of components owned by different forms/datamodules in multi-tier applications (it also applies to ServerController/User Session).
Scott Gast

Posts: 82
Registered: 4/2/04
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 24, 2018 5:27 AM   in response to: Alexandre Machado in response to: Alexandre Machado

For sure this is happening while a IWForm is loading (reading from DFM). Is this TROComponent a RemObjects connection of some kind?
Does it have any link with another object in another form/data module?

If so, remove this link at designtime and set the link at runtime, via code. For instance, let's say your TDataSet references a TDBConnection in another DataModule. Then remove the design time link between the two, and replace it with code that does the same, using OnCreate event of the IWForm.

I strongly discourage the design time linkage of components owned by different forms/datamodules in multi-tier applications (it also applies to ServerController/User Session).

Alexandre, I really appreciate your coding recommendations and suggestions.
:-)
Scott
Joel Zimmer

Posts: 68
Registered: 9/24/01
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 24, 2018 7:20 AM   in response to: Alexandre Machado in response to: Alexandre Machado
Alexandre Machado wrote:
Joel Zimmer wrote:
I am getting the following accessviolations on a system that is hit really hard.

For sure this is happening while a IWForm is loading (reading from DFM). Is this TROComponent a RemObjects connection of some kind?
Does it have any link with another object in another form/data module?

If so, remove this link at designtime and set the link at runtime, via code. For instance, let's say your TDataSet references a TDBConnection in another DataModule. Then remove the design time link between the two, and replace it with code that does the same, using OnCreate event of the IWForm.

I strongly discourage the design time linkage of components owned by different forms/datamodules in multi-tier applications (it also applies to ServerController/User Session).

It is a RemObjects unit. I will look into this and see if that is the problem.
Joel Zimmer

Posts: 68
Registered: 9/24/01
Re: Help with Access violation in ntdll
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 27, 2018 3:25 PM   in response to: Joel Zimmer in response to: Joel Zimmer
Joel Zimmer wrote:
Alexandre Machado wrote:
Joel Zimmer wrote:
I am getting the following accessviolations on a system that is hit really hard.

For sure this is happening while a IWForm is loading (reading from DFM). Is this TROComponent a RemObjects connection of some kind?
Does it have any link with another object in another form/data module?

If so, remove this link at designtime and set the link at runtime, via code. For instance, let's say your TDataSet references a TDBConnection in another DataModule. Then remove the design time link between the two, and replace it with code that does the same, using OnCreate event of the IWForm.

I strongly discourage the design time linkage of components owned by different forms/datamodules in multi-tier applications (it also applies to ServerController/User Session).

It is a RemObjects unit. I will look into this and see if that is the problem.

You suggestion seems to have fixed the issue. Setting the RemObjects datasource.tablename := nil in the dfm and then connecting it at the end of the oncreate of the form seem to have fixed the issue.

Thanks
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02