Blue Screen memory dump from JS on asps page?

Status
Not open for further replies.
On my development machine, dell m90 running xp pro sp2, I run .aspx scripts trough iis 6.0 using sql server 2005 for a DB. I ran a simple script to register event attendees and my system crashed. The crash occurs as follows.

If a user is in the DB, a javascript alert notifies them that they are already in the db. When they click 'ok' they are sent back to the form. This was working fine until yesterday. I noticed that the users were still being re-added to the DB. So, i was debugging and i ran it several times real fast (submit, ok, submit, ok etc) and after 7 times it went to a blue screen with a memory sharing violation notice. Now, after reboot the same thing happens every time i run the script.

So, the JS fires for the user, they click 'ok' and the DB is updated (even thouggh I dont want it to be) by the rest of the aspx script and they are kicked back to the form at the same time.

Can someone help pinpoint the problem and should I have dell send me a new machine, as I just got it a few weeks ago?

CheckDSK and memtest come back clean.

Below is all the info I have.


The Script (some info omitted and the JS causing the problem in bold.)

__________________________________________

<%@ Page Language="VB" Debug="true" %>

<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Web" %>

<%

'this is our connection string to the SQL server Db
'This should be moved to an include function.
Dim ConnString as String = "..conn string...;"

'we do not have events in the events table yet wo we set this to 1 for ...
Dim eventId as integer = 1
'dim all the request vars from the form as strings
Dim jobTitle as String = trim(request.form("jobTitle"))

blah blah get the form vars


'we are diming the var for the timestamp
Dim regDate as DateTime = DateTime.Now()
'dim the connection sting and open the conn to the DB
Dim userConn As New SqlConnection(ConnString)
userConn.Open()
'We need a boolean var to trak the loop to search for users in the db, set to false from git go
Dim blnRecords as Boolean = false
'this var will be the sql statement
Dim userSQL as String = "SELECT * FROM tableName WHERE first = '" & first & "' AND last = '" & last & "';"
'execute the command
Dim userCheck as New SqlCommand(userSQL, userConn)
Dim userDataReader As SqlDataReader = userCheck.ExecuteReader
'if the reader sees any users with criteria, flip the boolean to true
WHILE userDataReader.read()
blnRecords = true
END WHILE
'always close your datareader
userDataReader.CLOSE
'if we true then we need to alert the user and throw them back to the reg form
IF blnRecords = true THEN
%>
<script language="javascript">
alert("User has already been registered. Please check first and last name.")
return.false
history.go(-1)
</script>
<%ELSE

END IF
'if they are a unique user then add them to the db
userSQL = "insert into tableName(vars) " & _
"values(values);"


Dim userCommand as New SqlCommand(userSQL, userConn)
userCommand.ExecuteNonQuery()

'close the connection to the db after execution
userConn.close()
'thank them for coming and close form window
%>
<script language="javascript">
alert("Thank you for registering for blah blah!")
window.close()
</script>


_______________________________________________

The Error

_______________________________________________

BSOD with error code 1000008e, memory sharing violation.

_______________________________________________

The Event Log

_________________________________________________


The computer has rebooted from a bugcheck. The bugcheck was: 0x1000008e (0xc0000005, 0xbf8e5f91, 0xb60c2868, 0x00000000). A dump was saved in: C:\WINDOWS\Minidump\Mini081407-01.dmp.


The windbg Analysis

__________________________________________________

Microsoft (R) Windows Debugger Version 6.7.0005.1
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\WINDOWS\Minidump\Mini081407-02.dmp]
Mini Kernel Dump File: Only registers and stack trace are available

Symbol search path is: C:\WINDOWS\Symbols
Executable search path is:
Unable to load image ntoskrnl.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntoskrnl.exe
Windows XP Kernel Version 2600 (Service Pack 2) MP (2 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055c700
Debug session time: Tue Aug 14 15:36:07.234 2007 (GMT-5)
System Uptime: 0 days 0:14:10.960
Unable to load image ntoskrnl.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntoskrnl.exe
Loading Kernel Symbols
....................................................................................................................................................
Loading User Symbols
Loading unloaded module list
........
Unable to load image win32k.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for win32k.sys
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 1000008E, {c0000005, bf8e5f91, b511a868, 0}

Probably caused by : win32k.sys ( win32k!NtGdiQueryFontAssocInfo+a5 )

Followup: MachineOwner
---------

0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

KERNEL_MODE_EXCEPTION_NOT_HANDLED_M (1000008e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Some common problems are exception code 0x80000003. This means a hard
coded breakpoint or assertion was hit, but this system was booted
/NODEBUG. This is not supposed to happen as developers should never have
hardcoded breakpoints in retail code, but ...
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG. This will let us see why this breakpoint is
happening.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: bf8e5f91, The address that the exception occurred at
Arg3: b511a868, Trap Frame
Arg4: 00000000

Debugging Details:
------------------


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

FAULTING_IP:
win32k!NtGdiQueryFontAssocInfo+a5
bf8e5f91 8b5040 mov edx,dword ptr [eax+40h]

TRAP_FRAME: b511a868 -- (.trap 0xffffffffb511a868)
ErrCode = 00000000
eax=00000000 ebx=00000001 ecx=00000b20 edx=0000000b esi=e10e7258 edi=00000005
eip=bf8e5f91 esp=b511a8dc ebp=b511a8dc iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010246
win32k!NtGdiQueryFontAssocInfo+0xa5:
bf8e5f91 8b5040 mov edx,dword ptr [eax+40h] ds:0023:00000040=????????
Resetting default scope

CUSTOMER_CRASH_COUNT: 2

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0x8E

PROCESS_NAME: SqlWb.exe

LAST_CONTROL_TRANSFER: from bf816719 to bf8e5f91

STACK_TEXT:
b511a8dc bf816719 1c0110c8 b511a910 0012ea78 win32k!NtGdiQueryFontAssocInfo+0xa5
b511a920 805409ac 1c0110c8 e10e7258 00000004 win32k!DefSetText+0xa1
b511a934 7c90eb94 badb0d00 0012ea6c 00b4b4b4 nt!RtlIpv6StringToAddressW+0xe9
WARNING: Frame IP not in any known module. Following frames may be wrong.
b511a944 00000000 00000000 00000000 00000000 0x7c90eb94


STACK_COMMAND: kb

FOLLOWUP_IP:
win32k!NtGdiQueryFontAssocInfo+a5
bf8e5f91 8b5040 mov edx,dword ptr [eax+40h]

SYMBOL_STACK_INDEX: 0

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: win32k

IMAGE_NAME: win32k.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 45f013f6

SYMBOL_NAME: win32k!NtGdiQueryFontAssocInfo+a5

FAILURE_BUCKET_ID: 0x8E_win32k!NtGdiQueryFontAssocInfo+a5

BUCKET_ID: 0x8E_win32k!NtGdiQueryFontAssocInfo+a5

Followup: MachineOwner
 
Status
Not open for further replies.
Back