Bug 715091
Summary: | CDS syncs can get stuck as in progress | ||
---|---|---|---|
Product: | [Retired] Pulp | Reporter: | Jay Dobies <jason.dobies> |
Component: | z_other | Assignee: | Jason Connor <jconnor> |
Status: | CLOSED NEXTRELEASE | QA Contact: | Preethi Thomas <pthomas> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | unspecified | CC: | mmccune, skarmark |
Target Milestone: | --- | Keywords: | Triaged |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2012-07-11 20:16:43 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 688298 |
Description
Jay Dobies
2011-06-21 20:25:22 UTC
Also, the task list output needs to show arguments to the calls. Otherwise, it's impossible to differentiate between sync calls: Task: 366c15b3-9c44-11e0-bccb-00508d977dff Scheduler: immediate Call: CdsApi.cds_sync State: running Start time: 2011-06-21T16:22:40-04:00 Finish time: None Scheduled time: 2011-06-21T20:22:40Z Result: None Exception: None Traceback: None The argument to cds_sync identifies the CDS being syncced. One more note: I was unable to use the task CLI commands to kill the task. The "remove" command had no effect. I had to shut down apache, delete the contents of task_snapshot, and restart it. Since I had the task ID from the task list command, I probably could have just deleted that row, but with the mongo shell issues we've been seeing it was simpler to just kill the whole collection. added a task cancel rest api and cli command to cancel any task in a generic manner dangerous, but can possibly unstick a bad situation pushed in 1be66992a2e337c6cb3399ef3324ac7eac5e2939 build: 0.198 In order to truly unstick a task, the following steps must be tasken: 1) delete the task snapshot (if one exists) 2) remove the task 3) cancel the task This will cause the task to forcefully go away without the tasking system trying to restart it. fails_qa [root@preethi ~]# rpm -q pulp pulp-0.0.212-1.fc14.noarch here is the use case I followed 1. Ran CDS sync. 2. While cds sync was running stopped goferd on the cds 3. Restarted pulp-cds 4. Ran cds sync [root@preethi ~]# pulp-admin cds sync --hostname=pulp-cds.usersys.redhat.com error: operation failed: Sync already in process for CDS [pulp-cds.usersys.redhat.com] 4. Ran task list [root@preethi ~]# pulp-admin task list Task: 73d0dc59-b3aa-11e0-9f87-002564a85a58 Scheduler: interval Call: cull_history Arguments: State: waiting Start time: None Finish time: None Scheduled time: 2011-07-22T05:00:00Z Result: None Exception: None Traceback: None Task: 73d0c466-b3aa-11e0-9f86-002564a85a58 Scheduler: interval Call: cull_audited_events Arguments: State: waiting Start time: None Finish time: None Scheduled time: 2011-07-22T01:00:00Z Result: None Exception: None Traceback: None Task: 80558a63-b3aa-11e0-b191-002564a85a58 Scheduler: immediate Call: CdsApi.cds_sync Arguments: pulp-cds.usersys.redhat.com State: running Start time: 2011-07-21T11:02:50-04:00 Finish time: None Scheduled time: 2011-07-21T15:02:50Z Result: None Exception: None Traceback: None 5. Delete task snapshot [root@preethi ~]# pulp-admin task delete_snapshot --id=80558a63-b3aa-11e0-b191-002564a85a58 Snapshot for task [80558a63-b3aa-11e0-b191-002564a85a58] deleted 6. Remove task [root@preethi ~]# pulp-admin task remove --id=80558a63-b3aa-11e0-b191-002564a85a58 Task [80558a63-b3aa-11e0-b191-002564a85a58] set for removal 7. Task cancel [root@preethi ~]# pulp-admin task cancel --id=80558a63-b3aa-11e0-b191-002564a85a58 Task [80558a63-b3aa-11e0-b191-002564a85a58] canceled 8. Run task list and see it hanging From pulp.log 2011-07-21 11:04:55,033 28824:140175678088960: pulp.server.tasking.task:WARNING: task:404 Deprecated base class Task.cancel() called for [Task 80558a63-b3aa-11e0-b191-002564a85a58: CdsApi.cds_sync(pulp-cds.usersys.redhat.com, )] 2011-07-21 11:04:57,739 28824:140175583282944: gofer.messaging.consumer:ERROR: consumer:387 aa8b56b8-9c33-4dde-aa08-3fb997f6b3e6 Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/gofer/messaging/consumer.py", line 382, in __fetch return self.__receiver.fetch(timeout=timeout) File "<string>", line 8, in fetch File "/usr/lib64/python2.7/threading.py", line 137, in release raise RuntimeError("cannot release un-acquired lock") RuntimeError: cannot release un-acquired lock 2011-07-21 11:04:57,783 28824:140175583282944: pulp.server.api.cds:ERROR: cds:585 CDS threw an error during sync to CDS [pulp-cds.usersys.redhat.com] Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/pulp/server/api/cds.py", line 568, in cds_sync self.dispatcher.sync(cds, payload) File "/usr/lib/python2.7/site-packages/pulp/server/cds/dispatcher.py", line 138, in sync self._send(stub.sync, data) File "/usr/lib/python2.7/site-packages/pulp/server/cds/dispatcher.py", line 170, in _send result = func(*args) File "/usr/lib/python2.7/site-packages/gofer/messaging/stub.py", line 71, in __call__ return self.stub._send(request, opts) File "/usr/lib/python2.7/site-packages/gofer/messaging/stub.py", line 142, in _send any=opts.any) File "/usr/lib/python2.7/site-packages/gofer/messaging/policy.py", line 123, in send reader.close() File "/usr/lib/python2.7/site-packages/gofer/messaging/consumer.py", line 316, in close self.__receiver.close() File "<string>", line 6, in close File "/usr/lib/python2.7/site-packages/qpid/messaging/endpoints.py", line 1040, in close try: CdsMethodException 2011-07-21 11:04:57,788 28824:140175583282944: pulp.server.tasking.task:ERROR: task:381 Task failed: Task 80558a63-b3aa-11e0-b191-002564a85a58: CdsApi.cds_sync(pulp-cds.usersys.redhat.com, ) Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/pulp/server/tasking/task.py", line 330, in run result = self.callable(*self.args, **self.kwargs) File "/usr/lib/python2.7/site-packages/pulp/server/api/cds.py", line 568, in cds_sync self.dispatcher.sync(cds, payload) File "/usr/lib/python2.7/site-packages/pulp/server/cds/dispatcher.py", line 138, in sync self._send(stub.sync, data) File "/usr/lib/python2.7/site-packages/pulp/server/cds/dispatcher.py", line 170, in _send result = func(*args) File "/usr/lib/python2.7/site-packages/gofer/messaging/stub.py", line 71, in __call__ return self.stub._send(request, opts) File "/usr/lib/python2.7/site-packages/gofer/messaging/stub.py", line 142, in _send any=opts.any) File "/usr/lib/python2.7/site-packages/gofer/messaging/policy.py", line 123, in send reader.close() File "/usr/lib/python2.7/site-packages/gofer/messaging/consumer.py", line 316, in close self.__receiver.close() File "<string>", line 6, in close File "/usr/lib/python2.7/site-packages/qpid/messaging/endpoints.py", line 1040, in close try: PulpException: 'Error on the CDS during sync; check the server log for more information' CDS code is being rewritten entirely in v2 and this is no longer applicable. |