Quinn-Curtis Forums
Quinn-Curtis Forums
Home | Profile | Register | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Tools for Windows
 Charting and Real-Time Graphics Tools for Windows
 WGReconnectDataSet trouble
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

kontraband

8 Posts

Posted - 05 Apr 2007 :  07:52:13  Show Profile  Reply with Quote
Hi!
We are using QC for presentation of weather data with 20-30 graph windows redrawn once a minute. Since it is a critical system it's running 24-7 but after a while, 10 days or more we're experiencing crashes and the crash dump trace gives us this information:

FAULTING_IP:
WCT32DR3!WGSaveASCIIDataSet+8d7
1001fb81 dd04d0 fld qword ptr [eax+edx*8]

EXCEPTION_RECORD: ffffffff -- (.exr ffffffffffffffff)
ExceptionAddress: 1001fb81 (WCT32DR3!WGSaveASCIIDataSet+0x000008d7)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 01b6e000
Attempt to read from address 01b6e000

DEFAULT_BUCKET_ID: WRONG_SYMBOLS

PROCESS_NAME: AwosWst.exe

FAULTING_MODULE: 7c900000 ntdll

DEBUG_FLR_IMAGE_TIMESTAMP: 3db9565f

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".

READ_ADDRESS: 01b6e000

BUGCHECK_STR: ACCESS_VIOLATION

LAST_CONTROL_TRANSFER: from 1001b624 to 1001fb81

STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
0012fb18 1001b624 02a5a008 001d26b8 018f66b0 WCT32DR3!WGSaveASCIIDataSet+0x8d7
0012fb98 10054e3d 02a5a008 80010577 80010577 WCT32DR3!DrawMark+0x1214
0012fbb8 10054ea8 02a5a008 001d26b8 00000000 WCT32DR3!DestroyCalcData+0x14b
0012fbe4 1000b088 02a5a008 001d26b8 0000000e WCT32DR3!DestroyCalcData+0x1b6
0012fc0c 004d4191 02a5a008 00000008 0000000e WCT32DR3!WGReconnectDataSet+0x39

and the info for the WCT32DR3.DLL:
Image name: WCT32DR3.DLL
Timestamp: Fri Oct 25 14:34:07 2002 (3DB9565F)
CheckSum: 00000000
ImageSize: 00084000
File version: 1.0.0.1
Product version: 1.0.0.1
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Quinn-Curtis, Inc.
ProductName: Quinn-Curtis, Inc. Wct32d
InternalName: Wct32d
OriginalFilename: Wct32d.dll
ProductVersion: 1, 0, 0, 1
FileVersion: 1, 0, 0, 1
FileDescription: Wct32d
LegalCopyright: Copyright © 1998


So from this I can figure out that our application calls WGReconnectDataSet and in WGSaveASCIIDataSet there is a memory access violation or Buffer overrun. So far I havent been able to reproduce the error in any other way than to start the system and wait for 2 weeks.

Could it have something to do with when the old dataset is deleted? Since the WGReconnectDataSet is called every minute it will be called 60*24*14 ~ 20000 times before crashing. We havent detected any memoryleak.

Has anyone seen this before?

Best regards, R.Gustafsson

Peace!

quinncurtis

1164 Posts

Posted - 05 Apr 2007 :  08:27:49  Show Profile  Reply with Quote
Sorry, but there isn't much we can tell from this information. Are you running different aspects of the program accessing our DLL's on different threads? Does the dataset continually grow, or does it more or less remain the same size as time goes on?
Go to Top of Page

kontraband

8 Posts

Posted - 05 Apr 2007 :  09:39:42  Show Profile  Reply with Quote
It will grow with one more point to plot every minute for some of the graphs. So when the access violation occurs it has reached about 20 000 or so. Could this be the problem?

Or could it be some other issue with the OS?

Peace!
Go to Top of Page

quinncurtis

1164 Posts

Posted - 05 Apr 2007 :  10:09:03  Show Profile  Reply with Quote
No, 20,000 is not a magic number. The software can plot millions of points. For testing puposes why don't you get rid of the WGSaveASCIIDataSet call and speed up the update rate to once per second, or faster. Count the exact number of updates and see if the fault always occurs at the same update count.

If you are scheduling your updates using a timer, you must make absolutely sure that you disable the timer, and updates, while you are doing other things with the datasets, such as saving and reconnecting them.

Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Quinn-Curtis Forums © 2000-07 Quinn-Curtis, Inc. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07