dragonflyoss/Dragonfly2

Unable to download from peer with existing task

Closed this issue · 3 comments

Bug report:

After an image has been downloaded from p2p, task data already exists in one peer (peer1). Later, when another peer (peer2) downloads the same image, peer2 does not obtain the task from peer1 but obtains it from seed. And the results of multiple tests are the same

Expected behavior:

Peer should prioritize obtaining tasks from other peers, if the task already exists in a peer, rather than obtaining it from seed every time

How to reproduce it:

1master 2 node k8s, deploy dragonfly:manager 1(deploy), scheduler 1(sts), seed 1(sts), peer 3(ds), make sure the node has no mirror, first deploy nginx deploy 1 copy, check the p2p log, The download has been completed and stored in seed and peer1. Continue downloading and adjust nginx deploy to 2 copies. Make sure it is scheduled to the peer2 node. Check the peer2 log and find that the task is downloaded from seed.

(The logs and configurations of all p2p components have been added to the zip file. Please check if there are any problems. I will be very grateful if can help check.)
log20240316.zip

Environment:

  • Dragonfly version: v2.1.35
  • OS: centos 7.6.1810
  • Kernel (e.g. uname -a):3.10.0-1160.62.1.1.el7.x86_64
  • Others:

The peer 2 log reports an error: "target task not found, the src peer is same with running peer", but I don't know why there is this error.
image

The scheduler log only shows receive failed piece.
image

At the same time, peer 1 could not find any logs about this task, and it seemed that the request was not received.
image

manager log warning "cache: key is missing",The manager is deployed in another cluster. Is it related to this?

Sorry, this is due to a configuration error and I'll close it. The reason is that I turned on the peer's IPv6, and it worked normally after turning off.