I'm getting the following error when I try to load my app, and not sure why. It seemed to appear randomly. What might cause this to appear?
Drive Table internal error. Please try again. Caused by: Lock timeout: another process was holding the lock for too long.
Well, looks like this was caused by a query I was running from a Suggest Box.
Related
I have the following code that is crashing:
Try
Logger.Warn("do_databind entered.")
Session("AgentId") = AgentId
Session("section") = Section
SectionId.Value = Section.ToString()
Session("dtresponses") = dtresponses
Session("dtlv") = dtlv
lvQuestions.DataSource = dtlv
Logger.Warn("just before databind.")
lvQuestions.DataBind()
Logger.Warn("databind successful. ")
Catch ex As Exception
Logger.Error(ex)
If Not IsNothing(ex.InnerException) Then
Logger.Error(ex.InnerException)
End If
End Try
The coding reaches the "just before databind" message, and then the application aborts. The "databind successful" message is never reached.
The catch loop is never reached because the error message in it is not recorded.
This has been working for months, and just quit working today. I would think it is a server problem.
The listview size at the point of the databind command is only 8 records, and I know the page it generates takes less than 10k total with a number of other blocks it generates.
In the old days, we would say this is probably a heap-stack collision, but I am not sure that terminology applies as well to managed memory in VB.Net. The code that traps the error is probably being overwritten. Other than that, I have no clue as to why it would stop working on our servers overnight.
Has anyone encountered this particular problem before?
UPDATE: The server indicates that it is a stack overflow error in w3wp.exe with error code 0xc00000fd (i.e., stack overflow)
I don't use the databinding or databound events for anything, but it would be an additional diagnostic to see where the memory crash may be occurring.
This app is in testing, so I have extensive error-trapping and comment logging at this point to make sure that the functions are working correctly.
The error does not leave a trace in the program. It is being caught by the server. This makes sense if the error is caused by a stack overflow. It is overwriting the catch code.
UPDATE:
Found the problem.
The program depends on a database, and a change was made to the database that resulted in a recursive procedure that called itself with the same information.
It ran until all the system memory on the server was consumed, and then aborted with a stack overflow error.
I put in diagnostic messages until I finally found it.
The trick here is it was on the staging server, and the database on the development server was not identical, so it worked on the development server the correct way but bombed on the staging server because the database contents were different.
I thought my coding had accounted for the condition that led to the error, but it had not.
Now I know to look for recursive problems if I get an abort in an application that is loaded with try-catch loops and results in no error logging where error logging should exist.
I am facing this error since some time, it is very intermittent in nature so, unable to understand why this error and what needs t be done t fix this.
Issue:
We have a workflow 4.5 WCF service. Everything goes well, but intermittently we see suddenly that a workflow instance gets suspended with an error in the table "DurableInstancing.InstancesTable"
The error is "Keyword Not supported: 'DB Name,1433';Initial Catalog'.
Since most times this ust workd fine without any error, I do not think this problem is related to web.config entry for connectionstring. Most times the workflow completes without any error. We have verified multiple times that the connection string is proper and there is no issue with parsing the connection string.
I suspect this issue is happening while Workflow instance is being recreated from persistence storage, and because some reason it is unable to recreate , the workflow is getting suspended with this error in DB.
I really appreciate any help in getting us through this error.
Thanks,
GD
What we found was it was an issue with permission in Database. We gave "dbo" user permission to the workflow database, and after that we have not seen this problem occur again. Has the error or exception that gets logged in the table is mre informative then it would have been better.
Thanks,
GD
We have a new beta version of our software with some changes, but not around our database layer.
We've just started getting Error 3128 reported in our server logs. It seems that once it happens, it happens for as long as the app is open. The part of the code where it is most apparent is where we log data every second via SQLite. We've generated 47k errors on our server this month alone.
3128 Disk I/O error occurred. Indicates that an operation could not be completed because of a disk I/O error. This can happen if the runtime is attempting to delete a temporary file and another program (such as a virus protection application) is holding a lock on the file. This can also happen if the runtime is attempting to write data to a file and the data can't be written.
I don't know what could be causing this error. Maybe an anti-virus program? Maybe our app is getting confused and writing data on top of each other? We're using async connections.
It's causing lots of issues and we're at a loss. It has happened in our older version, but maybe 100 times in a month rather than 47,000 times. Either way I'd like to make it happen "0" times.
Possible solution: Exception Message: Some kind of disk I/O error occurred
Summary: There is probably not a problem with the database but a problem creating (or deleting) the temporary file once the database is opened. AIR may have permissions to the database, but not to create or delete files in the directory.
One answer that has worked for me is to use the PRAGMA statement to set the journal_mode value to something other than DELETE. You do this by issuing a PRAGMA statement in the same way you would issue a query statement.
PRAGMA journal_mode = OFF
Unfortunately, if the application crashes in the middle of a transaction when the OFF journaling mode is set, then the database file will very likely go corrupt.1.
1 http://www.sqlite.org/pragma.html#pragma_journal_mode
The solution was to make sure database delete, update, insert only happened one at at time by wrapping a little wrapper. On top of that, we had to watch for error 3128 and retry. I think this is because we have a trigger running that could lock the database after we inserted data.
We have a new beta version of our software with some changes, but not around our database layer.
We've just started getting Error 3128 reported in our server logs. It seems that once it happens, it happens for as long as the app is open. The part of the code where it is most apparent is where we log data every second via SQLite. We've generated 47k errors on our server this month alone.
3128 Disk I/O error occurred. Indicates that an operation could not be completed because of a disk I/O error. This can happen if the runtime is attempting to delete a temporary file and another program (such as a virus protection application) is holding a lock on the file. This can also happen if the runtime is attempting to write data to a file and the data can't be written.
I don't know what could be causing this error. Maybe an anti-virus program? Maybe our app is getting confused and writing data on top of each other? We're using async connections.
It's causing lots of issues and we're at a loss. It has happened in our older version, but maybe 100 times in a month rather than 47,000 times. Either way I'd like to make it happen "0" times.
Possible solution: Exception Message: Some kind of disk I/O error occurred
Summary: There is probably not a problem with the database but a problem creating (or deleting) the temporary file once the database is opened. AIR may have permissions to the database, but not to create or delete files in the directory.
One answer that has worked for me is to use the PRAGMA statement to set the journal_mode value to something other than DELETE. You do this by issuing a PRAGMA statement in the same way you would issue a query statement.
PRAGMA journal_mode = OFF
Unfortunately, if the application crashes in the middle of a transaction when the OFF journaling mode is set, then the database file will very likely go corrupt.1.
1 http://www.sqlite.org/pragma.html#pragma_journal_mode
The solution was to make sure database delete, update, insert only happened one at at time by wrapping a little wrapper. On top of that, we had to watch for error 3128 and retry. I think this is because we have a trigger running that could lock the database after we inserted data.
I am currently trying to get search working in my Tridion 2011 installation. I read in another article that I should run the TcmReIndex.exe tool in the Tridion/bin folder to re-index all my sites. So I tried this and it failed with a message box giving the following details
Unable to get list of Publication items.
Unable to Intialize TDSE object.
The wait operation timed out
Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=21054; handshake=35;
The wait operation timed out
A database error occurred while executing Stored Procedure "EDA_TRUSTEES_GETTRUSTEEETOKEN"
I have four fairly large publications (100 000+ items in total) which I am trying to index.
Any ideas?
Whenever I get "Unable to Intialize TDSE object." errors, I typically write a small test script using VBScript, and try running it on the CMS server. Whilst this does not directly solve the problem, it often gives some insight into the issue by logging information in the event viewer. Try creating a test.vbs file as follows and running it:
Set tdse = CreateObject("TDS.TDSE")
tdse.initialize()
msgbox(tdse.User.Description)
Set tdse = Nothing
If it throws any errors, please let me know, and it may help us solve the problem. If it gives you a popup with your user description, then I am completely barking up the wrong tree.
I haven't come to anything conclusive but it seems like my issue may have been a temporary one as it just started working. I did increase all timeouts in Tridion MMC > Timeout Settings by 100 times their amounts but I suspect that this wasn't the issue, when it works the connection is almost instant.
If anyone else has this issue
Restart the computer the content manager is installed on, try again.
Wait an hour or two, try again.
Increase timeouts, try again.
I've run the process a few more times and it seems to be working correctly.