I have two servers/nodes setup with BDR and that is working. I’m trying to add a third node. When the third node tries to sync, I get an error:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 600; 1255 17054 FUNCTION cast_txt_to_int(text, integer) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: function "cast_txt_to_int" already exists with same argument types
The thing is, that function does not actually exist on the destination side. How can I get past this error and get the third node online?
Are you certain your 3rd node's configuration is correct, with all the right connection strings?
My first guess would be that it's trying to restore the dump to the second node, as you would've copied the config and changed one dsn but not the other.
Please show your configuration for each node.
Also, what BDR version are you using? If you built from git, please show "git rev-parse --short HEAD" from the extension's git tree. If you built from packages, the package version is sufficient.
BTW, the version after 0.8.0 will include a lot of sanity checks for connection configurations, making sure everything points at the right nodes before it does anything.