-
Notifications
You must be signed in to change notification settings - Fork 485
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PSQLException: ERROR: deadlock detected running integration tests #2460
Comments
Here's another example:
|
We'll need to make datasetVersionId searchable per #2038. It sure seems like the rules about draft files established in #528 will have to change. :/ Issue #2460 created about database deadlocks. :( Issue #2464 created about having to edit metadata of a published dataset before we can delete a file via SWORD. :( Issue #2461 created about how the native API allows version less than v1.0 to be published. :(
In a meeting today about performance I mentioned these integration tests and that I hadn't run them in a while. I just ran them again on the 4.3 branch (commit 0330ae3) and they passed the first time but failed the second time I ran them (exception including database deadlock below), which is consistent with what I was seeing before. Again, these are pretty normal and mundane API calls made the to Dataverse installation running on my laptop. I don't feel like we should be getting database deadlocks. @scolapasta you (or anyone) can run these by opening SearchIT.java in Netbeans, right clicking, and selecting "Test File".
|
So if I go and look at the code in searchIT.java, is it going to be more or less obvious what the test attempts to do? |
OK, there's a lot going on in that test. (Which is a good thing - to have such elaborate integration tests; seeing this code makes me feel guilty for not making good ITs of my own). But, without being able to point where the conflict is happening - I'm still thinking it has to be something simple. Maybe you create the dataset, then immediately issue another API call to update it - and that happens before the initial indexing has had a chance to finish? |
@landreev heh. Yeah, I keep packing more and more stuff into SearchIT. I'd recommend trying to get BuiltinUsersIT running first. It's way smaller and more demo-able... could be good fodder for a future dev talk on using https://github.com/jayway/rest-assured |
Meta-issue: If an integration test can fail so easily, why is this issue not marked critical? Issue: have you looked at the transaction isolation level? |
@pdurbin Can you rerun this test to see if this is still happening? Also, can you elaborate on what the test does and attempt to isolate/ simplify the test case to the minimal steps? |
I'm closing this because as of pull request #3940 that I just made I'm not seeing these errors. |
Running integration tests such as
mvn test -Dtest=SearchIT
is causing deadlocks. I'm not sure why. An example stacktrace is below. These integration tests are normal API calls. I'm not touching the database directly or anything. I'm on commit 35c42ad. Passing to @scolapasta for review.The text was updated successfully, but these errors were encountered: