Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERROR: Internal Server Error: /computes/**/machines #615

Open
0x6d61726b opened this issue Oct 22, 2023 · 25 comments
Open

ERROR: Internal Server Error: /computes/**/machines #615

0x6d61726b opened this issue Oct 22, 2023 · 25 comments

Comments

@0x6d61726b
Copy link
Contributor

I am currently playing running webvirtcloud in an lxc container and got that running pretty well (with a few questions still open to me). However, when trying to create a new instance, some requests are not processed unless "DEBUG = TRUE" is set in settings.py file.

System (debian 12, bookworm):
Linux XXXX 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux

Log entry (DEBUG = False):
[2023-10-22 21:50:26,311] ERROR: Internal Server Error: /computes/1/archs/x86_64/machines
Debug=False

Log entry (DEBUG = True):
none
Debug=True

Can somebody please let me know on how to track down this issue to get a clue what is going on and how to resolve it?

@MisterBlueBear
Copy link
Contributor

MisterBlueBear commented Oct 28, 2023

I had the same issue running WebVirtCloud on an aarch64 server. The Chipset dropdown would be empty and I get internal server errors in the log.

[2023-10-28 10:01:17,656] ERROR: Internal Server Error: /favicon.ico
[2023-10-28 10:01:54,346] ERROR: Internal Server Error: /computes/1/archs/aarch64/machines

The issue seems to go away after I closed my web browser and restarted nginx and supervisor. Not sure which combination solved this issue for me as I was trying different things at the time. Maybe a caching issue.

@0x6d61726b
Copy link
Contributor Author

Thank you very much @MisterBlueBear for sharing your experience and offering this solution.

I did restart the whole LXC container that contains WebVirtCloud and closed the web browser, took a different one and also used a different computer, but unfortunately that all did not work for me. However, I can confirm that the content of /computes/**/machines gets cached if cache is turned on in the web browser (default), but can be disabled when using debug view. Also clearing browser caches did not help.

I think this issue is somehow related to WebVirtCloud code, because Gunicorn reports HTTP 500 Internal Server Error, but only when DEBUG = False. Maybe it helps to know that the compute instance is connected via SSH?

@ShengruiZhang
Copy link

I recently encountered this issue when I was trying to add a new instance. There was no option in the drop-down menu for Chipset.

Would you mind share the rest of your webvirtcloud.log? My log indicates that there could be problem with random MAC generation.

[2023-11-13 13:33:10,219] ERROR: Internal Server Error: /instances/create/1/x86_64/null/
Traceback (most recent call last):
File "/srv/webvirtcloud/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/srv/webvirtcloud/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/webvirtcloud/admin/decorators.py", line 8, in _inner
return function(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/webvirtcloud/instances/views.py", line 1688, in create_instance
mac_auto = util.randomMAC()
^^^^^^^^^^^^^^^^
File "/srv/webvirtcloud/vrtManager/util.py", line 20, in randomMAC
mac = settings.MAC_OUI + ":%02x:%02x:%02x" % (
^^^^^^^^^^^^^^^^
File "/srv/webvirtcloud/venv/lib/python3.11/site-packages/django/conf/init.py", line 104, in getattr
val = getattr(_wrapped, name)
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Settings' object has no attribute 'MAC_OUI'

@catborise
Copy link
Collaborator

Did you make migrations?

@ShengruiZhang
Copy link

Here's the output when I ran python3 manage.py migrate

Operations to perform:
Apply all migrations: accounts, admin, appsettings, auth, computes, contenttypes, instances, interfaces, logs, networks, otp_totp, sessions, storages
Running migrations:
No migrations to apply.
SHOW_PROFILE_EDIT_PASSWORD is found inside settings.py
Applying permission can_change_password for all users
Warning!!! Setting to True for all users
! Don`t forget to remove the option from settings.py

After that I restarted nginx and supervisor. I got the same error when I tried to create a new instance.
[2023-11-16 13:47:08,456] ERROR: Internal Server Error: /computes/1/archs/x86_64/machines

Is there anything else you would like to look at to debug this issue?

@catborise
Copy link
Collaborator

checkout new settings. there are some new settings in settings.py.template
copy mac_oui from template file to settings.py

@hyxxsfwy
Copy link

Encountered the same problem on a fresh installation of webvirtcloud, ERROR: Internal Server Error: /computes/1/archs/x86_64/machines.

OS: Ubuntu 20.04.6

@hyxxsfwy
Copy link

Encountered the same problem on a fresh installation of webvirtcloud, ERROR: Internal Server Error: /computes/1/archs/x86_64/machines.

OS: Ubuntu 20.04.6

Try reinstall with the install.sh script and problem solved.

@ssbaksa
Copy link

ssbaksa commented Dec 24, 2023

I have the same problem with container version. There is no option for machine type and Internal server error while accessing some menus, like User menu. I have removed complete local git before last build, did diff for settings.py and database was already transformed by previous build.

image

@ssbaksa
Copy link

ssbaksa commented Jan 13, 2024

Problem fixed.
tzdata was missing from pip3 requirements so I have added it.
And I have changed time zone from UTC to my local 'Europe/Zagreb'
After new container build with added changes all is working normal as much I can observe. No more tzdata errors and no more Zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key UTC' in webvirtcloud.log

@catborise
Copy link
Collaborator

we can add tzdata to python requirement packages

@ssbaksa
Copy link

ssbaksa commented Jan 17, 2024

Well, it looks that it is needed. I have attached my log file from latest docker build with errors shown.
After adding tzdata to requirements and new build there is no errors any more.
webvirtcloud.zip

@0x6d61726b
Copy link
Contributor Author

I have installed tzdata in the LXC container running webvirtcloud with the following command sequence:

cd /srv/webvirtcloud
source venv/bin/activate
pip install tzdata

Afterwards I rebooted the LXC container, but this did not fix the issue (it still does not work with DEBUG = False). The log file does not show any difference whether tzdata is installed or not (and I have also configured a local timezone: TIME_ZONE = "Europe/Berlin"):

[2024-01-18 19:35:06,896] INFO: In exit
[2024-01-18 19:36:27,304] INFO: WebSocket server settings:
[2024-01-18 19:36:27,305] INFO:   - Listen on 0.0.0.0:6080
[2024-01-18 19:36:27,305] INFO:   - No SSL/TLS support (no cert file)
[2024-01-18 19:36:27,312] INFO:   - proxying from 0.0.0.0:6080 to ignore:ignore
[2024-01-18 19:37:52,705] ERROR: Internal Server Error: /computes/1/archs/x86_64/machines

Is there a way to get more/detailed logs that pinpoints to the location that causes this error?

@ssbaksa
Copy link

ssbaksa commented Jan 19, 2024

Hi 0x6d61726b

I have tried the same approach with docker container and it didn't work. Only rebuilding from the start with tzdata added in requirements helped.
But now, I have found that new build works almost OK. There is no Server error any more but menu for machine type is empty again when I try to build new one.

I will test it again with debug enabled.

@ssbaksa
Copy link

ssbaksa commented Jan 19, 2024

Yup, confirmed. When debug is enabled it works as it should. Chipset field is automatically filled with default value. With debug turned off that field is empty and can't be filled from drop down menu.

image

@catborise
Copy link
Collaborator

catborise commented Jan 19, 2024

can you please check http address to see if you can reach the chipset default values;
with;

http://localhost:8000/computes/15/archs/x86_64/machines/

15:hostid-> change with your host id

result like;
image

@ssbaksa
Copy link

ssbaksa commented Jan 19, 2024

With tzone and debug true:
http://backup.lab.os/computes/1/archs/x86_64/machines/
{"machines": ["ubuntu", "pc", "ubuntu-q35", "q35"]}

With tzone and debug false:
{"machines": ["ubuntu", "pc", "ubuntu-q35", "q35"]}
But in GUI:

image

@0x6d61726b
Copy link
Contributor Author

0x6d61726b commented Jan 19, 2024

@catborise: I have performed the same test and found out that the sequence where webvirtcloud requests machines information differs:

DEBUG = True:
machines ⯈ 301 Moved Permanently
/computes/1/archs/x86_64/machines/ ⯈ 200 OK

DEBUG = False:
machines ⯈ 500 Internal Server Error

webvirtcloud_Debug=True

webvirtcloud_Debug=False

@ssbaksa: Have you made sure that Firefox has not cached the value of machines? I ran into this trap when investigating this issue a while ago.

@ssbaksa
Copy link

ssbaksa commented Jan 19, 2024 via email

@rtpacks
Copy link

rtpacks commented Jan 20, 2024

can you please check http address to see if you can reach the chipset default values; with;

http://localhost:8000/computes/15/archs/x86_64/machines/

15:hostid-> change with your host id

result like; image

Hi, I had the same issue, debug=false, access /computes/1/archs/x86_64/machines/ to get machines. What information should I provide?

{
    "machines": [
        "ubuntu",
        "pc",
        "ubuntu-q35",
        "q35"
    ]
}

@rtpacks
Copy link

rtpacks commented Jan 20, 2024

Owwww! I found it. When installing kvm, I installed qemu qemu-system (download all platforms) and webvirtcloud returned the correct results.

aptitude install qemu qemu-system virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-utils -y

@ssbaksa
Copy link

ssbaksa commented Jan 20, 2024 via email

@ssbaksa
Copy link

ssbaksa commented Jan 21, 2024

@0x6d61726b
Different browser with cleared cache, cookies ...
image

@tianmaxingkong168
Copy link

tianmaxingkong168 commented Jun 11, 2024

I modify this file <computes/urls.py>, update line 62 from "archs/str:arch/machines/" to "archs/str:arch/machines", Or modify this file <instances/templates/create_instance_w1.html>, update line 104 from <get_machine_type_url = "/computes/" + compute_id + "/archs/" + arch + "/machines"> to <get_machine_type_url = "/computes/" + compute_id + "/archs/" + arch + "/machines/"> and restart supervisor. After this, the drop-down menu for Chipset is displayed.

@catborise
Copy link
Collaborator

@tianmaxingkong168 thanks. i made changes, i hope it will solve(i cannot reproduce problem) with #649

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants