Page 1 of 1

Strange behavior after upgrade to 6.2.8

Posted: Tue 18 Sep 2018 07:56
by Macma
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

Re: Strange behavior after upgrade to 6.2.8

Posted: Tue 18 Sep 2018 11:07
by ViktorV
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.

Re: Strange behavior after upgrade to 6.2.8

Posted: Fri 21 Sep 2018 10:51
by Macma
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

Re: Strange behavior after upgrade to 6.2.8

Posted: Fri 21 Sep 2018 12:29
by ViktorV
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.