retspen / webvirtcloud

WebVirtCloud is virtualization web interface for admins and users
1.63k stars 362 forks source link

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

Open 0x6d61726b opened 8 months ago

0x6d61726b commented 8 months ago

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 commented 8 months ago

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 commented 8 months ago

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 commented 7 months ago

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 commented 7 months ago

Did you make migrations?

ShengruiZhang commented 7 months ago

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 commented 7 months ago

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

hyxxsfwy commented 7 months ago

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 commented 7 months ago

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 commented 6 months ago

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 commented 5 months ago

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 commented 5 months ago

we can add tzdata to python requirement packages

ssbaksa commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

@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 commented 5 months ago

It can be so. I will try it again tomorow.

On Fri, 19 Jan 2024, 18:43 0x6d61726b, @.***> wrote:

@catborise https://github.com/catborise: I have performed the same test and found out that the address where webvirtcloud requests machines information differs significantly depending on DEBUG setting:

DEBUG = True: /computes/1/archs/x86_64/machines/ ⯈ 200 OK DEBUG = False: machines ⯈ 500 Internal Server Error

webvirtcloud_Debug.True.png (view on web) https://github.com/retspen/webvirtcloud/assets/25281946/67c607a7-e031-4682-a198-82e28943ed61

webvirtcloud_Debug.False.png (view on web) https://github.com/retspen/webvirtcloud/assets/25281946/c0787f84-b3ee-4b81-afce-9a2f964bf7db

@ssbaksa https://github.com/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.

— Reply to this email directly, view it on GitHub https://github.com/retspen/webvirtcloud/issues/615#issuecomment-1900832082, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEYIXMFXI5CXS3VIT2QSDZ3YPKWELAVCNFSM6AAAAAA6LENQOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBQHAZTEMBYGI . You are receiving this because you were mentioned.Message ID: @.***>

rtpacks commented 5 months ago

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 commented 5 months ago

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 commented 5 months ago

So, you are sugesting that this is error in compute or how it is installed. Well its all worked well on my 19 hypervisors and I hadn't changed anything there. I am only building new dockers when catborise push them to git.

On Sat, 20 Jan 2024, 17:54 rtpacks, @.***> wrote:

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

— Reply to this email directly, view it on GitHub https://github.com/retspen/webvirtcloud/issues/615#issuecomment-1902174201, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEYIXMFXG53CH6EDV6JESRDYPPZDHAVCNFSM6AAAAAA6LENQOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBSGE3TIMRQGE . You are receiving this because you were mentioned.Message ID: @.***>

ssbaksa commented 5 months ago

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

tianmaxingkong168 commented 2 weeks ago

I modify this file <computes/urls.py>, update line 62 from "archs//machines/" to "archs//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 commented 5 days ago

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