Page 1 of 1

Assertion failure (...\OraClasses.pas, line 3361)

Posted: Wed 17 Mar 2010 13:10
by DDinformatica
Hi,

We get this error message in our application at a client site:

Assertion failure (...\OraClasses.pas, line 3361)

I'm not sure at what query exactly this happens, as we are not able to reproduce this on our site and we can not debug the software on the client site.

Please help.

Posted: Thu 18 Mar 2010 10:58
by Challenger
Please specify the version of ODAC you are using.

Posted: Fri 19 Mar 2010 07:45
by DDinformatica
I'm sorry I totally forgot that. We are using ODAC 6.90.0.53

Same issue

Posted: Tue 23 Mar 2010 08:03
by tadadams
I'm using madExcept 3.0l and it is reporting the following error on many of my programs.

Assertion failure (D:\Projects\Delphi\Dac\Oracle\Source\OraClasses.pas, line 3493)

I assume the path in the error is from your folder structure when you compile because I don't have that path on my computer.

I am using ODAC version 6.90.0.52

Thanks,

Tad

Still getting the Assertion error

Posted: Mon 05 Apr 2010 07:02
by tadadams
I upgraded to 6.90.0.56 and I'm still getting the error, although the line number has changed to 3708.

Is there going to be a fix for this?

Is anyone monitoring this forum?

Looking forward to your response.

Tad

Re: Still getting the Assertion error

Posted: Tue 06 Apr 2010 10:50
by DDinformatica
tadadams wrote:Is anyone monitoring this forum?
Tad
I don't think so.

My client solved the problem by installing a newer version of a Citrix application. So my problem is solved.

But I looked in the source beore and found that this is most likely cased by this construction:

Code: Select all

procedure TOCIConnection.BusyWait;
begin
{$IFDEF MSWINDOWS}
  if FThreadSafety then begin
    case WaitForSingleObject(hBusy, INFINITE) of
      WAIT_OBJECT_0:
        Exit;
      WAIT_TIMEOUT:
        raise EOraError.Create(OCI_CONNECTION_BUSY,
          'ORA-03127a');
      WAIT_ABANDONED: begin
        Exit;
        Abort;
      end;
    else
      Assert(False);
    end;
  end;
{$ENDIF}
end;
I this function the Assert is used in place of a RaiseWinOSError. Therefor you can never see what went wrong.

If you can reproduce this error and are able to recompile the ODAC maybe you can replace the Assert and run a test.

Andreas

Posted: Tue 06 Apr 2010 11:31
by tadadams
I have written a program that loads upon logon to the domain. About 30 people use the program, and I get about 5 bug reports a day from different computers/people so I should be able to get it reproduced. I didn't have the source code to ODAC, but I just bought it. So I should be able to tinker with it later.

Take care, see you later...

Tad