Closed GoogleCodeExporter closed 8 years ago
During the course of making changes to fix issue 803, I found another issue
which can't drop dataverse due to the following exception:
Caused by: edu.uci.ics.hyracks.api.exceptions.HyracksDataException: Cannot
remove index while it is open.
at edu.uci.ics.asterix.common.context.DatasetLifecycleManager.unregister(DatasetLifecycleManager.java:111)
at edu.uci.ics.hyracks.storage.am.common.dataflow.IndexDataflowHelper.destroy(IndexDataflowHelper.java:123)
at edu.uci.ics.hyracks.storage.am.common.dataflow.IndexDropOperatorNodePushable.initialize(IndexDropOperatorNodePushable.java:49)
at edu.uci.ics.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.initialize(SuperActivityOperatorNodePushable.java:81)
at edu.uci.ics.hyracks.control.nc.Task.run(Task.java:239)
This issue is caused by the incorrect active operation count management in
PrimaryIndexOperationTracker when there are duplicate key exceptions.
The count is incremented in beforeOperation() and decremented in
completeOperation() of PrimaryIndexOperationTracker. When there are exceptions
such as duplicated key exceptions, the completeOperation() is not properly
called.
This issue seems to have a similar symptom in issue 606 reported by Till.
But I can't tell exactly since csv file link is not accessible in the reported
issue.
Original comment by kiss...@gmail.com
on 29 Sep 2014 at 9:51
The incorrect active operation count issue is also related to issue 665.
Original comment by kiss...@gmail.com
on 29 Sep 2014 at 9:55
I strongly think that the source of the active operation count bug is caused by
hyracks runtime and NOT by incorrect count management.
I've seen this one before and it was mentioned by other people as well in the
weekly meeting.
What I "think" is happening is that when an exception is thrown in an operator
in the "nextFrame" function, it is expected that a subsequent call to "close"
will be made while in fact "close" is not being called. Note that all the
operators I've seen are implemented with this assumption in mind.
This theory can be checked easily.
Original comment by bamou...@gmail.com
on 29 Sep 2014 at 10:24
If you run the test case given in the first issue report, you can see that the
active operation count in PrimaryIndexOperationTracker doesn't become zero when
the duplicated key exception is thrown.
Original comment by kiss...@gmail.com
on 29 Sep 2014 at 11:23
Which supports my theory :)
Original comment by bamou...@gmail.com
on 29 Sep 2014 at 11:27
Original comment by kiss...@gmail.com
on 30 Sep 2014 at 11:20
Could you add the revision that fixed this to the issue for future reference?
Original comment by westm...@gmail.com
on 17 Oct 2014 at 9:00
The revisions are shown below:
Asterix revisoin:
https://code.google.com/p/asterixdb/source/detail?r=1accbc0ee77989470c6330722469
1481b2d23faf
Hyracks revision:
https://code.google.com/p/hyracks/source/detail?r=b6e23520aa7c590f10110f448dfac9
735786b9e2
Original comment by kiss...@gmail.com
on 20 Oct 2014 at 3:41
Thanks!
Original comment by westm...@gmail.com
on 21 Oct 2014 at 5:01
Issue 665 has been merged into this issue.
Original comment by ildar.absalyamov
on 7 Nov 2014 at 7:43
Original issue reported on code.google.com by
kiss...@gmail.com
on 29 Sep 2014 at 5:02Attachments: