NS8: Configure NGINX fails

Can still re-create the “Connection reset by peer” error starting from the Rocky ISO:

  • Install Rocky 9.1 minimal from ISO
  • Reboot
  • Install NS8 via curl, which also upgrades Rocky to 9.2, so
  • Reboot
  • Create cluster leader via command
  • Logon to UI
  • Install NGINX
  • Configure NGINX
  • Hit “Save” on SFTPGO configuration
  • Something went wrong

Cheers.

1 Like

What error ?

What ressources for the VM ?

What ressources for the hypervisor ?

I am guessing if you have ssd or hardrive on the hypervisor

The same Connection refused as above.

2 core, 4GB

8 core, 16GB

Not sure it would work without one. :grinning: Mine is a harddrive.

Cheers.

with SSD ?

No, all spinning disks.

Cheers.

ok I needed to use myself spinning disk to reproduce your issue, you hypervisor is too slow :smiley:

I use SSD everywhere now

I think I have a patch

1 Like

Sounds good. But:

WOW, I’ve never heard of any software being that dependent on IO speed.

What if you’re installing on a slave (is that the right term) node across a network.

Cheers.

If you need to access redis among the network fastly we got a local replica, for example a service discovery could use a local replica to find a settings and use it. The question is also good when we try to connect to traefik, I recall an issue of @mrmarkuz

Here your issue is different. I do not have a so fast server because it has been built in 2013 (amd fx 8320 and 32G ram) but I use a nvme ssd to store my VM and it is faster than your server (even on pcie v2.0)

In your case the first time we try to configure the container sftpgo, the container itself has not been fully started, even if I ping the external port to make a live check. It drives to the issue, we try to connect and the container is not ready.

The solution is not nice but it is to sleep 10 before to configure it the first time. I did some experiences with a VM on a spinning drive and with the software stress to slow more my VM too

Try ssd you will see a game changer :slight_smile:

1 Like

I can reproduce the issue on Rocky 9.1/9.2 on ESXi (image and ISO) and Proxmox (image).

To reproduce:
Install webserver, configure works. Reboot and configure doesn’t work anymore:

{
  "context": {
    "action": "configure-module",
    "data": {
      "http2https": false,
      "path": "/sftpgo",
      "sftp_tcp_port": 3092,
      "sftpgo_service": false
    },
    "extra": {
      "description": "Configuring...",
      "title": "webserver1 configuration"
    },
    "id": "37a7ed25-c340-4c0b-914a-3a863f8d089d",
    "parent": "",
    "queue": "module/webserver1/tasks",
    "timestamp": "2023-06-08T06:30:48.374541279Z",
    "user": "admin"
  },
  "status": "aborted",
  "progress": 40,
  "subTasks": [],
  "validated": true,
  "result": {
    "error": "<7>dump_env() is deprecated and implemented as a no-op\nTraceback (most recent call last):\n  File \"/home/webserver1/.config/actions/configure-module/20traefik\", line 54, in <module>\n    response = agent.tasks.run(\n  File \"/usr/local/agent/pypkg/agent/tasks/run.py\", line 39, in run\n    results = runp([taskrq], **kwargs)\n  File \"/usr/local/agent/pypkg/agent/tasks/run.py\", line 50, in runp\n    return asyncio.run(_runp(tasks, **kwargs))\n  File \"/usr/lib64/python3.9/asyncio/runners.py\", line 44, in run\n    return loop.run_until_complete(main)\n  File \"/usr/lib64/python3.9/asyncio/base_events.py\", line 647, in run_until_complete\n    return future.result()\n  File \"/usr/local/agent/pypkg/agent/tasks/run.py\", line 120, in _runp\n    return await asyncio.gather(*runners, return_exceptions=(len(tasks) > 1))\n  File \"/usr/local/agent/pypkg/agent/tasks/run.py\", line 129, in _run_with_protocol\n    return await run_apiclient(taskrq, **pconn)\n  File \"/usr/local/agent/pypkg/agent/tasks/apiclient.py\", line 47, in run_apiclient\n    taskctx['status_path'] = await _retry_request(_apost_task, taskrq, client=client, theaders=theaders, **kwargs)\n  File \"/usr/local/agent/pypkg/agent/tasks/apiclient.py\", line 191, in _retry_request\n    raise exhttp\n  File \"/usr/local/agent/pypkg/agent/tasks/apiclient.py\", line 166, in _retry_request\n    retval = await request_procedure(*args, **kwargs)\n  File \"/usr/local/agent/pypkg/agent/tasks/apiclient.py\", line 246, in _apost_task\n    async with client.post(\n  File \"/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client.py\", line 1117, in __aenter__\n    self._resp = await self._coro\n  File \"/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client.py\", line 625, in _request\n    resp.raise_for_status()\n  File \"/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client_reqrep.py\", line 1000, in raise_for_status\n    raise ClientResponseError(\naiohttp.client_exceptions.ClientResponseError: 403, message='Forbidden', url=URL('http://cluster-leader:9311/api/module/traefik1/tasks')\n",
    "exit_code": 1,
    "file": "task/module/webserver1/37a7ed25-c340-4c0b-914a-3a863f8d089d",
    "output": ""
  }
}
1 Like

Could you try to reproduce with dokuwiki ?

Dokuwiki configuration works without issues.

EDIT:

Also reproducible on Debian from ISO with 2 nodes. I installed a second webserver2 on the other node and after reboot configure didn’t work anymore.
I just use SSDs for the VMs.

3 Likes

I wonder like any new distro if we will need more modern computers. I recall about the time of NethServer 6, users were complaining about the lack of support of X86, X64 was only supported

1 Like

Thank @mrmarkuz indeed it is a real bug, I hope not ns8-webserver related because the code is good before to restart, but after the restart we cannot configure traefik we got a 403 answer

help wanted here @andre8244 @giacomo

I try to reproduce with other rmodule

The path to the action in github is ns8-webserver/20traefik at main · NethServer/ns8-webserver · GitHub

`
Jun 08 14:35:49 R1-pve.rocky9-pve.org api-server[777]: [SOCKET] error JWT token not found

Jun 08 14:35:49 R1-pve.rocky9-pve.org webserver1[919]: aiohttp.client_exceptions.ClientResponseError: 403, message=‘Forbidden’, url=URL(‘http://cluster-leader:9311/api/module/traefik1/tasks’)
`

Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]: dump_env() is deprecated and implemented as a no-op
Jun 08 14:35:19 R1-pve.rocky9-pve.org api-server[777]: [SOCKET] error JWT token not found
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]: Traceback (most recent call last):
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/home/webserver1/.config/actions/configure-module/20traefik", line 54, in <module>
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     response = agent.tasks.run(
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pypkg/agent/tasks/run.py", line 39, in run
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     results = runp([taskrq], **kwargs)
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pypkg/agent/tasks/run.py", line 50, in runp
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     return asyncio.run(_runp(tasks, **kwargs))
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/lib64/python3.9/asyncio/runners.py", line 44, in run
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     return loop.run_until_complete(main)
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/lib64/python3.9/asyncio/base_events.py", line 647, in run_until_complete
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     return future.result()
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pypkg/agent/tasks/run.py", line 120, in _runp
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     return await asyncio.gather(*runners, return_exceptions=(len(tasks) > 1))
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pypkg/agent/tasks/run.py", line 129, in _run_with_protocol
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     return await run_apiclient(taskrq, **pconn)
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pypkg/agent/tasks/apiclient.py", line 47, in run_apiclient
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     taskctx['status_path'] = await _retry_request(_apost_task, taskrq, client=client, theaders=theaders, **kwargs)
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pypkg/agent/tasks/apiclient.py", line 191, in _retry_request
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     raise exhttp
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pypkg/agent/tasks/apiclient.py", line 166, in _retry_request
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     retval = await request_procedure(*args, **kwargs)
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pypkg/agent/tasks/apiclient.py", line 246, in _apost_task
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     async with client.post(
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client.py", line 1117, in __aenter__
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     self._resp = await self._coro
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client.py", line 625, in _request
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     resp.raise_for_status()
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:   File "/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client_reqrep.py", line 1000, in raise_for_status
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]:     raise ClientResponseError(
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]: aiohttp.client_exceptions.ClientResponseError: 403, message='Forbidden', url=URL('http://cluster-leader:9311/api/module/traefik1/tasks')
Jun 08 14:35:19 R1-pve.rocky9-pve.org webserver1[919]: task/module/webserver1/be3bd185-18ee-41d6-819e-0b3e484d73c0: action "configure-module" status is "aborted" (1) at step 20traefik
1 Like

same with mattermost we can configure it before must not after the reboot

Jun 08 14:53:43 R1-pve.rocky9-pve.org mattermost1[961]: dump_env() is deprecated and implemented as a no-op
Jun 08 14:53:43 R1-pve.rocky9-pve.org api-server[774]: [SOCKET] error JWT token not found
Jun 08 14:53:43 R1-pve.rocky9-pve.org mattermost1[961]: Traceback (most recent call last):
Jun 08 14:53:43 R1-pve.rocky9-pve.org mattermost1[961]:   File "/home/mattermost1/.config/actions/configure-module/30Traefik", line 53, in <module>
Jun 08 14:53:43 R1-pve.rocky9-pve.org mattermost1[961]:     response = agent.tasks.run(
Jun 08 14:53:43 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pypkg/agent/tasks/run.py", line 39, in run
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     results = runp([taskrq], **kwargs)
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pypkg/agent/tasks/run.py", line 50, in runp
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     return asyncio.run(_runp(tasks, **kwargs))
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/lib64/python3.9/asyncio/runners.py", line 44, in run
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     return loop.run_until_complete(main)
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/lib64/python3.9/asyncio/base_events.py", line 647, in run_until_complete
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     return future.result()
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pypkg/agent/tasks/run.py", line 120, in _runp
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     return await asyncio.gather(*runners, return_exceptions=(len(tasks) > 1))
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pypkg/agent/tasks/run.py", line 129, in _run_with_protocol
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     return await run_apiclient(taskrq, **pconn)
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pypkg/agent/tasks/apiclient.py", line 47, in run_apiclient
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     taskctx['status_path'] = await _retry_request(_apost_task, taskrq, client=client, theaders=theaders, **kwargs)
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pypkg/agent/tasks/apiclient.py", line 191, in _retry_request
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     raise exhttp
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pypkg/agent/tasks/apiclient.py", line 166, in _retry_request
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     retval = await request_procedure(*args, **kwargs)
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pypkg/agent/tasks/apiclient.py", line 246, in _apost_task
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     async with client.post(
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client.py", line 1117, in __aenter__
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     self._resp = await self._coro
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client.py", line 625, in _request
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     resp.raise_for_status()
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:   File "/usr/local/agent/pyenv/lib64/python3.9/site-packages/aiohttp/client_reqrep.py", line 1000, in raise_for_status
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]:     raise ClientResponseError(
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]: aiohttp.client_exceptions.ClientResponseError: 403, message='Forbidden', url=URL('http://cluster-leader:9311/api/module/traefik1/tasks')
Jun 08 14:53:44 R1-pve.rocky9-pve.org mattermost1[961]: task/module/mattermost1/96ace470-559d-4b09-bf19-284dca6d6bfc: action "configure-module" status is "aborted" (1) at step 30Traefik

same for nextcloud …