nickva edited a comment on issue #1578: Upgraded v2.2 node in mixed version cluster errors on document attachments URL: https://github.com/apache/couchdb/issues/1578#issuecomment-416135437 @procogent @jvegaseg Thank you for your reports. This is probably happening because the attachment receiver parser was upgraded from sending closures [*] to sending messages. In that case, the error would happen during the upgrade when there is a mix of old (pre 2.2) nodes and new nodes in the same cluster. As soon as all nodes are upgraded, the errors should stop. Specifically, 2.2 nodes in https://github.com/apache/couchdb/blob/56782453f342fb5e4137e8c9afc79b1992a8b21a/src/fabric/src/fabric.erl#L281 will start sending messages instead of closures. On the receiving side, 2.2 nodes will know how to handle both closures and messages, however the old, pre-2.2 nodes, will not know how to handle messages and will show that error. Perhaps try one of these scenarios to fix the issue: 1) Stop attachment uploading traffic (or all traffic) while nodes are upgrading, then resume 2) After a node is upgraded to 2.2, temporarily remove it from the load balancer list so that the new node doesn't process HTTP API requests, but can still handle requests coordinated via older pre 2.2. nodes. Eventually there'd be only one node processing requests. Right before that node is restarted for upgrade, return traffic to all the other nodes. 3) Build the release from source but revert this commit: https://github.com/apache/couchdb/commit/56782453f342fb5e4137e8c9afc79b1992a8b21a. Do a rolling node reboot. Then make another release with that commit and do another rolling node reboot. [*] A closure is a snapshot of function's environment during the time when the function is created. In an Erlang cluster that environment can be even be sent to other nodes. However that is very fragile and needs the module to be exactly the same on all the cluster nodes.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
