AccessViolation in TXLSMMURebuildVector.WriteVector

Questions and answers on how to use XLSReadWriteII 5.
Post Reply
d3nton
Posts: 133
Joined: Thu Oct 25, 2012 9:48 am

AccessViolation in TXLSMMURebuildVector.WriteVector

Post by d3nton »

Hi!

Recently we received several bugreports from our customers with the following callstack:

Code: Select all

Exception Message : Access violation at address 000000000103EB8E in module 'Project.exe'. Write of address 000000000000000D.
350  1791 Project.exe XLSMMU5 TXLSMMURebuildVector.WriteVector +56
714  930 Project.exe XLSMMU5 TXLSMMUVectorManager.Alloc +58
37  357 Project.exe XLSMMU5 TXLSMMUBlockManager.AllocMem +2
101  1406 Project.exe XLSCellMMU5 TXLSCellMMU.StoreString +17
...
...
The callstacks are not always completely equal (see below: StoreString/StoreFloat) but I guess it is the same bug in 'AllocMem' or 'WriteVector':

Code: Select all

Exception Message : Access violation at address 000000000103EB8E in module 'Project.exe'. Write of address 000000000000000D.
350  1791 Project.exe XLSMMU5 TXLSMMURebuildVector.WriteVector +56
714  930 Project.exe XLSMMU5 TXLSMMUVectorManager.Alloc +58
37  357 Project.exe XLSMMU5 TXLSMMUBlockManager.AllocMem +2
101  1089 Project.exe XLSCellMMU5 TXLSCellMMU.StoreFloat +14
...
...
Unfortunately there is no easy way to reproduce this but
the problem occurs only on 64bit builds and only when lots of memory (~ 4Gb or more) is used by the application.
The problem is also not deterministic, means that it is not a specific float number or string which causes the issue.
Because of the described behaviour I can imagine that it is a problem related to NativeInt, Integer vs Uint or s.th similar.
Is this a known problem? Can you please fix this?
If you need more information about the problem please let me know.

Thank you!
d3nton
larsa
Site Admin
Posts: 926
Joined: Mon Jun 27, 2005 9:30 pm

Re: AccessViolation in TXLSMMURebuildVector.WriteVector

Post by larsa »

Hello

The address value of 000000000000000D indicates that the memory is overwritten. This also make sense, if the pointer used in WriteVector is zero, and a offset is added to it, the value is likely to be about 000000000000000D. The memory can of course be overwritten by any code in your application. As I can't reproduce the error, I can't help you to find where the error is.
Lars Arvidsson, Axolot Data
d3nton
Posts: 133
Joined: Thu Oct 25, 2012 9:48 am

Re: AccessViolation in TXLSMMURebuildVector.WriteVector

Post by d3nton »

I have updated to 5.20.50 and I can no longer reproduce the problem. So it seems to be fixed due to some other changes I guess :)
Post Reply