Closed karthanistyr closed 4 years ago
Did you retry to follow this server? It seems there was some connection issues at this moment (ETIMEDOUT
error)
Ok, I just did a follow on the same instance and the unicast job completed. The timeouts are frequent though (on a side note: are they retried automatically?)
ID | Type | Statut | Créé le | Traité sur | Fini sur |
---|---|---|---|---|---|
116 | activitypub-http-unicast | completed | Dec 5, 2019, 4:08:25 PM | Dec 5, 2019, 4:08:25 PM | Dec 5, 2019, 4:08:26 PM |
{
"uri": "https://vault.mle.party/accounts/peertube/inbox",
"signatureActorId": 1,
"body": {
"type": "Follow",
"id": "https://video.barbed.fr/accounts/peertube/follows/758",
"actor": "https://video.barbed.fr/accounts/peertube",
"object": "https://vault.mle.party/accounts/peertube"
}
}
However the status is still "Waiting" after several minutes.
I set up a test 1.4.1 instance to gather the other end of logs, and it looks like those gathered on vault.mle.party:
[pt141-1.uplink.fail:443] 2019-12-06 13:57:47.972 info: Fetching remote actor https://video.barbed.fr/accounts/peertube.
[pt141-1.uplink.fail:443] 2019-12-06 13:57:48.036 error: Error in ActivityPub signature checker.Cannot fetch remote actor https://video.barbed.fr/accounts/peertube {
"stack": "Error: Cannot fetch remote actor https://video.barbed.fr/accounts/peertube\n at Object.<anonymous> (/app/dist/server/lib/activitypub/actor.js:57:23)\n at Generator.next (<anonymous>)\n at fulfilled (/app/dist/server/lib/activitypub/actor.js:4:58)"
}
[pt141-1.uplink.fail:443] 2019-12-06 13:57:48.037 info: 46.105.102.192 - - [06/Dec/2019:13:57:48 +0000] "POST /accounts/peertube/inbox HTTP/1.1" 403 9 "-" "PeerTube/2.0.0 (+https://video.barbed.fr)"
An attempted isntance-follow from video.barbed.fr always results in these lines on the 1.4.1 end. Notice the 403 status code (and also the signature check error).
Are there any settings I could flip to try an toy around this?
Enable debug logs in 1.4.1 server settings
[pt141-1.uplink.fail:443] 2019-12-06 14:07:20.117 info: Fetching remote actor https://video.barbed.fr/accounts/peertube.
[pt141-1.uplink.fail:443] 2019-12-06 14:07:20.220 debug: Remote actor JSON is not valid. {
"actorJSON": {
"type": "Application",
"id": "https://video.barbed.fr/accounts/peertube",
"following": "https://video.barbed.fr/accounts/peertube/following",
"followers": "https://video.barbed.fr/accounts/peertube/followers",
"playlists": "https://video.barbed.fr/accounts/peertube/playlists",
"inbox": "https://video.barbed.fr/accounts/peertube/inbox",
"outbox": "https://video.barbed.fr/accounts/peertube/outbox",
"preferredUsername": "peertube",
"url": "https://video.barbed.fr/accounts/peertube",
"name": "peertube",
"endpoints": {
"sharedInbox": "https://video.barbed.fr/inbox"
},
"publicKey": {
"id": "https://video.barbed.fr/accounts/peertube#main-key",
"owner": "https://video.barbed.fr/accounts/peertube",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmJ4R0dB5w2X1/ps32npp\nkfT9yGlRoA59OVudcWXVULXGfw+E4+eqSyt0fi8VioWXSc06VabC5umIzKS5upVI\nGO2fSs1hPL2+xwI8fzfqmuRjUAiTwmqELA22IHXBFIuZPr24Qf5TFg+PSw318Yfm\nVrcd6P4vRa5x+D8mo0j6iSaoLgTFTT8QqP8yVA7qS3feIXj7zCtYg9gK0JxsTkmG\nDdjdBfYRhmNKLxqP3SrV4OCvQ1WeriKjCo5XWkWOXPy90gKaDbtkkgtpaVl8CH25\nUBmkTEu+02fD+GZV+v7H3Ru10imhddjP5OHe0SlWqnzSuLiLiTsCf00zIL/jwDF/\nqQIDAQAB\n-----END PUBLIC KEY-----"
},
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"RsaSignature2017": "https://w3id.org/security#RsaSignature2017",
"pt": "https://joinpeertube.org/ns#",
"sc": "http://schema.org#",
"Hashtag": "as:Hashtag",
"uuid": "sc:identifier",
"category": "sc:category",
"licence": "sc:license",
"subtitleLanguage": "sc:subtitleLanguage",
"sensitive": "as:sensitive",
"language": "sc:inLanguage",
"expires": "sc:expires",
"CacheFile": "pt:CacheFile",
"Infohash": "pt:Infohash",
"originallyPublishedAt": "sc:datePublished",
"views": {
"@type": "sc:Number",
"@id": "pt:views"
},
"state": {
"@type": "sc:Number",
"@id": "pt:state"
},
"size": {
"@type": "sc:Number",
"@id": "pt:size"
},
"fps": {
"@type": "sc:Number",
"@id": "pt:fps"
},
"startTimestamp": {
"@type": "sc:Number",
"@id": "pt:startTimestamp"
},
"stopTimestamp": {
"@type": "sc:Number",
"@id": "pt:stopTimestamp"
},
"position": {
"@type": "sc:Number",
"@id": "pt:position"
},
"commentsEnabled": {
"@type": "sc:Boolean",
"@id": "pt:commentsEnabled"
},
"downloadEnabled": {
"@type": "sc:Boolean",
"@id": "pt:downloadEnabled"
},
"waitTranscoding": {
"@type": "sc:Boolean",
"@id": "pt:waitTranscoding"
},
"support": {
"@type": "sc:Text",
"@id": "pt:support"
}
},
{
"likes": {
"@id": "as:likes",
"@type": "@id"
},
"dislikes": {
"@id": "as:dislikes",
"@type": "@id"
},
"playlists": {
"@id": "pt:playlists",
"@type": "@id"
},
"shares": {
"@id": "as:shares",
"@type": "@id"
},
"comments": {
"@id": "as:comments",
"@type": "@id"
}
}
],
"summary": null,
"attributedTo": []
}
}
[pt141-1.uplink.fail:443] 2019-12-06 14:07:20.221 error: Error in ActivityPub signature checker.Cannot fetch remote actor https://video.barbed.fr/accounts/peertube {
"stack": "Error: Cannot fetch remote actor https://video.barbed.fr/accounts/peertube\n at Object.<anonymous> (/app/dist/server/lib/activitypub/actor.js:57:23)\n at Generator.next (<anonymous>)\n at fulfilled (/app/dist/server/lib/activitypub/actor.js:4:58)"
}
[pt141-1.uplink.fail:443] 2019-12-06 14:07:20.228 info: 46.105.102.192 - - [06/Dec/2019:14:07:20 +0000] "POST /accounts/peertube/inbox HTTP/1.1" 403 9 "-" "PeerTube/2.0.0 (+https://video.barbed.fr)"
Thanks I understand now. We fixed a bug in 2.0.0 and it was an unplanned breaking change.
Before this fix, the peertube instance actor said it was a Person
, but in fact it is an Application
. Another bug was that peertube considered that everything else than a Person
was supposed to have an non-empty attributedTo
(the correct condition is than only a Group
should be attributedTo
in PeerTube).
We can't really do anything here, admins will have to update to peertube 2.0.
it was an unplanned breaking change. [...] We can't really do anything here, admins will have to update to peertube 2.0.
Ouch. As it stands right now, admins of 2.0.0 instances may lose the benefit of populating their global feed with all the good content put up by admins of an older generation instance (i.e. no instance-follows). It would only get better over time as admins update their instances, which they may or may not do (as they are running stable versions, or don't have time, etc...), but right now it's very frequent to find a 1.4.1 or older instance.
(It is still possible to follow individual channels as a Person
as expected.)
Would it be possible to consider a fix to restore backwards compatibility with instance-follows between instances of different generations? Undo the breaking change and maybe monitor the landscape to reintroduce the breakage in a planned fashion with a notice to admins?
Would it be possible to consider a fix to restore backwards compatibility with instance-follows between instances of different generations? Undo the breaking change and maybe monitor the landscape to reintroduce the breakage in a planned fashion with a notice to admins?
No sorry. You can update your peertube instance to introduce itself as a Person
if your want.
As a side note, existing follows should not be affected.
Thanks, I expected as much. I don't think I want to start hacking into my instance as I want to keep future upgrades as smooth as possible.
I do appreciate your help in figuring out this issue and the peertube team's work in general.
If I may share my experience as someone who waited for 2.0.0 to land to start my instance, it's a bit disappointing to figure out that my instance is cut off from a significant part of the peertube network in terms of functionality. I find it a bit of a shame to consciously keep this broken, even if the original breakage was unintentional, as it adversely influences my perception of peertube as stable software. I don't claim my opinion to be a generality of course.
I wish you and the team best of luck and cross my fingers hoping there won't be further breakages ;)
What happened? On a fresh 2.0.0 instance, I, as the admin, add several instances using the
/admin/follows/following-add
panel. Those of these instances running 2.0.0 progress the follow status to "Accepted" whereas those running an older code base (1.4.1 and older) stay stuck at "Waiting" and never progress further.RE: follow confirmation, this has also been tried with the help of the admin of a v1.4.1 instance guaranteeing that the follow confirmation is disabled.
What do you expect to happen instead? Most instances, including those running an older code base, should progress to "Accepted". There should not be a clear fracture between 2.0.0 and older code bases.
Please note that I am aware of a disclaimer in the 2.0.0 release notes:
However I am not able to tell with confidence if it is related to the present issue.
Steps to reproduce: To my knowledge, the steps could be as simple as:
Additional information
PeerTube version or URL: video.barbed.fr (2.0.0 from Docker image)
Browser name/version: Firefox (latest)
NodeJS version: from the docker image
Server log if useful: Instance follow requests to older code bases seems to always result on my end with an
activitypub-http-unicast
job failure:The very kind admin on the receiving end has provided me with some evidence of activity from my instance, ending in a failure: