Setup Multiple ODM Nodes?

Have not looked into it much but is it possible to set up multiple nodes on the same hardware given enough resources available for concurrent tasks.

I have 32GB of memory and 16 threads were wondering if I could get a 2nd node going for faster renders so I can pump out a quick ortho and a draft test of a different project at the same time.

I tried adding a new Node in the WebODM Windows version but it seems it needs to actually be mounted somehow first and I have no idea where, to begin with adding a node to run locally that is not the pre-mounted node 1

1 Like

I guess yes, they are just containers (nodeodm) and you need to start them with other ports instead of 3000 use 3001 or 3002:3000.
Then add them to nodes in webodm


Yes! You can also set your concurrency on each node, which is what I typically do these days (I ran multiple nodes for years).


That is exactly what I did on my first attempt.

I set the follow

Port: 29302 (1 digit higher than my Node1)
Name: node-odm-2

When I added it was showing up in red colour text and telling it could not connect to the node.

Ok… I tried that again and restarted the client this time and now WebODM is broken.
Exit Code 1

"Booting WebODM 1.9.11 build 51..."
"Trying to connect to NodeODM localhost:29301..."
"nodeodm: info: Authentication using SimpleToken\r\n"
"nodeodm: info: Listening on UDP for progress updates\r\n"
"nodeodm: info: No tasks dump found\r\n"
"nodeodm: info: Checking for orphaned directories to be removed...\r\n"
"nodeodm: info: Server has started on port 29301\r\n"
"Connected to NodeODM 2.2.0"
"redis-server:                 _._                                                  \n           _.-``__ ''-._                                             \n      _.-``    `.  `_.  ''-._           Redis 3.2.100 (00000000/0) 64 bit\n  .-`` .-```.  ```\\/    _.,_ ''-._                                   \n (    '      ,       .-`  | `,    )     Running in standalone mode\n |`-._`-...-` __...-.``-._|'` _.-'|     Port: 29379\n |    `-._   `._    /     _.-'    |     PID: 5024\n  `-._    `-._  `-./  _.-'    _.-'                                   \n |`-._`-._    `-.__.-'    _.-'_.-'|                                  \n |    `-._`-._        _.-'_.-'    |         \n  `-._    `-._`-.__.-'_.-'    _.-'                                   \n |`-._`-._    `-.__.-'    _.-'_.-'|                                  \n |    `-._`-._        _.-'_.-'    |                                  \n  `-._    `-._`-.__.-'_.-'    _.-'                                   \n      `-._    `-.__.-'    _.-'                                       \n          `-._        _.-'                                           \n              `-.__.-'                                               \n\n[5024] 19 Feb 12:30:09.606 # Server started, Redis version 3.2.100\n"
"redis-server: [5024] 19 Feb 12:30:09.609 * DB loaded from disk: 0.002 seconds\n[5024] 19 Feb 12:30:09.609 * The server is now ready to accept connections on port 29379\n"
"F:\\WebODM\\resources\\app\\apps\\pgsql/bin/pg_ctl: pg_ctl: could not send stop signal (PID: 8304): No such process\r\n"
"F:\\WebODM\\resources\\app\\apps\\pgsql/bin/pg_ctl: exited with code 1"
"Could not stop PGSQL, but pidfile found"
"Trying to connect to postgres localhost:29543..."
"F:\\WebODM\\resources\\app\\apps\\pgsql/bin/pg_ctl: server starting\r\n"
"F:\\WebODM\\resources\\app\\apps\\pgsql/bin/psql: exited with code 0"
"python: Operations to perform:\r\n  Apply all migrations: admin, app, auth, contenttypes, guardian, nodeodm, sessions\r\nRunning migrations:\r\n  No migrations to apply.\r\n"
"python: exited with code 0"
"python: Traceback (most recent call last):\r\n  File \"F:\\WebODM\\resources\\app\\apps\\WebODM\\\", line 22, in <module>\r\n"
"python:     execute_from_command_line(sys.argv)\r\n  File \"F:\\WebODM\\resources\\app\\apps\\grass78\\Python39\\lib\\site-packages\\django\\core\\management\\\", line 381, in execute_from_command_line\r\n    utility.execute()\r\n  File \"F:\\WebODM\\resources\\app\\apps\\grass78\\Python39\\lib\\site-packages\\django\\core\\management\\\", line 375, in execute\r\n    self.fetch_command(subcommand).run_from_argv(self.argv)\r\n  File \"F:\\WebODM\\resources\\app\\apps\\grass78\\Python39\\lib\\site-packages\\django\\core\\management\\\", line 316, in run_from_argv\r\n"
"python:     self.execute(*args, **cmd_options)\r\n  File \"F:\\WebODM\\resources\\app\\apps\\grass78\\Python39\\lib\\site-packages\\django\\core\\management\\\", line 353, in execute\r\n"
"python:     output = self.handle(*args, **options)\r\n  File \"F:\\WebODM\\resources\\app\\apps\\WebODM\\app\\management\\commands\\\", line 17, in handle\r\n"
"python:     ProcessingNode.objects.update_or_create(hostname=options.get('host'), \r\n  File \"F:\\WebODM\\resources\\app\\apps\\grass78\\Python39\\lib\\site-packages\\django\\db\\models\\\", line 82, in manager_method\r\n    return getattr(self.get_queryset(), name)(*args, **kwargs)\r\n  File \"F:\\WebODM\\resources\\app\\apps\\grass78\\Python39\\lib\\site-packages\\django\\db\\models\\\", line 502, in update_or_create\r\n"
"python:     obj = self.select_for_update().get(**lookup)\r\n  File \"F:\\WebODM\\resources\\app\\apps\\grass78\\Python39\\lib\\site-packages\\django\\db\\models\\\", line 401, in get\r\n"
"python:     raise self.model.MultipleObjectsReturned(\r\nnodeodm.models.MultipleObjectsReturned: get() returned more than one ProcessingNode -- it returned 2!\r\n"
"python: exited with code 1"

LOG:  database system was interrupted; last known up at 2022-02-18 20:29:22 EST
LOG:  database system was not properly shut down; automatic recovery in progress
LOG:  invalid record length at 0/ED78050: wanted 24, got 0
LOG:  redo is not required
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
LOG:  received fast shutdown request
LOG:  aborting any active transactions
LOG:  autovacuum launcher shutting down
LOG:  shutting down
LOG:  database system is shut down
LOG:  database system was shut down at 2022-02-18 20:32:36 EST
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started

Now it is fully broken and the WebUI refuse to start.

How can I fix?
maybe I should just re-install?

Where is the database located perhaps I can remove the node manually from whatever database it is using.

I just re-installed and created my presets again.

1 Like

Please make sure you don’t use localhost, use the dockers virtual machine ip instead.

1 Like

But I am not using Docker…
I am using the Windows Native Setup.

I don’t have a WebODM Manager I have the Windows WebODM, not the one that requires Docker to be running.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.