Status: New
Owner: [email protected]
New issue 665 by [email protected]: RpcCallJobqueueUpdate does not
virtualize the file path
http://code.google.com/p/ganeti/issues/detail?id=665
What steps will reproduce the problem?
1. Set up a vcluster with a couple of nodes.
2. Run ./cmd 'gnt-cluster verify'
3. Get lots of error messages about ssh problems:
Thu Jan 9 14:10:36 2014 * Verifying node status
Thu Jan 9 14:10:36 2014 - ERROR: node node1: ssh communication with
node 'node11': ssh problem: ssh_exchange_identification: Connection closed
by remote host\'r\n
Thu Jan 9 14:10:36 2014 - ERROR: node node1: ssh communication with
node 'node10': ssh problem: ssh_exchange_identification: Connection closed
by remote host\'r\n
Thu Jan 9 14:10:36 2014 - ERROR: node node1: ssh communication with
node 'node20': ssh problem: ssh_exchange_identification: Connection closed
by remote host\'r\n
Thu Jan 9 14:10:36 2014 - ERROR: node node1: ssh communication with
node 'node22': ssh problem: ssh_exchange_identification: Connection closed
by remote host\'r\n
Thu Jan 9 14:10:36 2014 - ERROR: node node1: ssh communication with
node 'node3': ssh problem: ssh_exchange_identification: Connection closed
by remote host\'r\n
...
Digging through the code I found out that the problem is in Rpc.hs
RpcCallJobqueueUpdate. The path in the variable 'file_name' of the RPC call
needs to be virtualized, but this is missing here.
For comparison, the virtualization in the python code is done in jqueue.py,
CallJqUpdate:
virt_file_name = vcluster.MakeVirtualPath(file_name)
So basically, the functionality of "MakeVirtualPath" needs to be
implemented in Haskell.
Please use labels and text to provide additional information.
To verify, that it is indeed this call, I logged the jobqueue_update RPC
calls in the backend and marked the haskell ones with "ZZZ". Excerpt from
node2/var/log/ganeti/node-daemon.log:
2014-01-09 13:56:37,764: ganeti-noded pid=30803 ERROR XXX backend file_name
before /###-VIRTUAL-PATH-###,/var/lib/ganeti/queue/job-2
2014-01-09 13:56:37,764: ganeti-noded pid=30803 ERROR XXX backend file_name
after /srv/ganeti/vcluster/node2/var/lib/ganeti/queue/job-2
2014-01-09 13:56:37,766: ganeti-noded pid=30803 INFO 192.0.2.11:35877 POST
/jobqueue_update HTTP/1.1 200
2014-01-09 13:56:40,742: ganeti-noded pid=30867 ERROR XXX backend file_name
before ZZZ/srv/ganeti/vcluster/node1/var/lib/ganeti/queue/serialZZZ
2014-01-09 13:56:40,742: ganeti-noded pid=30867 ERROR Error in RPC call
Traceback (most recent call last):
File "/usr/local/share/ganeti/2.11/ganeti/server/noded.py", line 182, in
HandleRequest
result = (True, method(serializer.LoadJson(req.request_body)))
File "/usr/local/share/ganeti/2.11/ganeti/server/noded.py", line 103, in
wrapper
return fn(*args, **kwargs)
File "/usr/local/share/ganeti/2.11/ganeti/server/noded.py", line 1055, in
perspective_jobqueue_update
return backend.JobQueueUpdate(file_name, content)
File "/usr/local/share/ganeti/2.11/ganeti/backend.py", line 3503, in
JobQueueUpdate
file_name = vcluster.LocalizeVirtualPath(file_name)
File "/usr/local/share/ganeti/2.11/ganeti/vcluster.py", line 260, in
LocalizeVirtualPath
assert os.path.isabs(path)
AssertionError
2014-01-09 13:56:40,745: ganeti-noded pid=30867 INFO 192.0.2.11:35883 POST
/jobqueue_update HTTP/1.1 200
2014-01-09 13:56:40,885: ganeti-noded pid=30868 ERROR XXX backend file_name
before ZZZ/srv/ganeti/vcluster/node1/var/lib/ganeti/queue/job-3ZZZ
2014-01-09 13:56:40,886: ganeti-noded pid=30868 ERROR Error in RPC call
Traceback (most recent call last):
File "/usr/local/share/ganeti/2.11/ganeti/server/noded.py", line 182, in
HandleRequest
result = (True, method(serializer.LoadJson(req.request_body)))
File "/usr/local/share/ganeti/2.11/ganeti/server/noded.py", line 103, in
wrapper
return fn(*args, **kwargs)
File "/usr/local/share/ganeti/2.11/ganeti/server/noded.py", line 1055, in
perspective_jobqueue_update
return backend.JobQueueUpdate(file_name, content)
File "/usr/local/share/ganeti/2.11/ganeti/backend.py", line 3503, in
JobQueueUpdate
file_name = vcluster.LocalizeVirtualPath(file_name)
File "/usr/local/share/ganeti/2.11/ganeti/vcluster.py", line 260, in
LocalizeVirtualPath
assert os.path.isabs(path)
AssertionError
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings