Strange behavior after upgrade to 6.2.8

Discussion of open issues, suggestions and bugs regarding IBDAC (InterBase Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Macma
Posts: 10
Joined: Thu 23 Oct 2008 09:02

Strange behavior after upgrade to 6.2.8

Post by Macma » Tue 18 Sep 2018 07:56

Hi,

I'm using RadStudio XE (C++ personality).
I've just upgrade IBDAC professional with source code from version 4.1.4 to 6.2.8 (09-Jul-18).
After upgrade and rebuild all I found strange behaviour of may applications. TJvThread (from JVCL library) doesn't terminate any more.
I've recheck that none old dcu, bpi, lib etc. was left from previous version.
I've test binary version 6.2.8 in some other vm environment and the problem persists.
Because I use IBDAC in threads i try to test it with just simply empty thread and I've got the same effect, thread doesn't terminate.
So it looks like something spoils memory and i see only the side effect.

I try to narrow this problem to IBDAC version. I've test with 6.1.7 (10-Apr-18) and it works ok.
So i try to test changes made between version 6.1.7 and 6.2.8 and I've narrow this problem to record

TLocalMDLink = record
IsNull: boolean;
Buffer: IntPtr;
BufferType: Word;
NativeBuffer: boolean;
FieldNo: integer;
MasterFieldValue: Variant;
end;

When I add extra element to this record (eg. test: Variant) just to change TLocalMDLink size everything works fine, it means that I don't see the side affect of not terminating threads.
In my opinion it could be some bug in SetLocalMDLinks function that spoils memory, but I can't prepare small demo application because I can't reproduce this side effect.
Can You do some code review and recheck this piece of code?

Best Regards,
Macma

ViktorV
Devart Team
Posts: 2729
Joined: Wed 30 Jul 2014 07:16

Re: Strange behavior after upgrade to 6.2.8

Post by ViktorV » Tue 18 Sep 2018 11:07

In IBDAC 6.2.8, we added the MasterFieldValue: Variant field to the TLocalMDLink record.
Unfortunately, we cannot reproduce the issue using the information provided by you: our tests are executed without errors and you are the only user who contacted us with a similar problem. To understand the cause of the issue, we need a test sample, in which the issue is stably reproduced. As soon as we get such a sample and if the issue cause is due to our product code, we will try to fix it in the shortest possible time.
Therefore, please compose a small sample demonstrating the described behavior and send it to us using the contact form https://devart.com/company/contactform.html including the scripts for creating database objects.

Macma
Posts: 10
Joined: Thu 23 Oct 2008 09:02

Re: Strange behavior after upgrade to 6.2.8

Post by Macma » Fri 21 Sep 2018 10:51

Hi,

I found the reason of my problem.

I use in my application DLL library that also using IBDAC, but IBDAC was statically linked into this DLL.
Despite rebuilding this DLL and all packages, executables etc. with new version of IBDAC, the problem was still persisted.
When I've change from static to dynamic link everything starts to work properly.

I wonder why this problem do not appear earlier, with previous version of IBDAC and what is bizarre in construction where Variant variable is placed in record type.

Beast Regards,
Macma

ViktorV
Devart Team
Posts: 2729
Joined: Wed 30 Jul 2014 07:16

Re: Strange behavior after upgrade to 6.2.8

Post by ViktorV » Fri 21 Sep 2018 12:29

As we wrote earlier, we cannot reproduce the issue using the information provided by you. To understand the cause of the issue, we need a test sample, in which the issue is stably reproduced. Therefore, please compose a small sample demonstrating the described behavior and send it to us using the contact form https://devart.com/company/contactform.html including the scripts for creating database objects.

Post Reply