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

VMs do not reconnect networking after netvm's restart #722

Closed
marmarek opened this Issue Mar 8, 2015 · 3 comments

Comments

Projects
None yet
1 participant
@marmarek
Member

marmarek commented Mar 8, 2015

Reported by joanna on 2 Mar 2013 22:16 UTC
None

Migrated-From: https://wiki.qubes-os.org/ticket/722

@marmarek marmarek added this to the Release 2 Beta 3 milestone Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Modified by marmarek on 6 Aug 2013 03:24 UTC

Member

marmarek commented Mar 8, 2015

Modified by marmarek on 6 Aug 2013 03:24 UTC

@marmarek marmarek self-assigned this Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Comment by marmarek on 7 Aug 2013 15:45 UTC
This issue is harder than I though... So far identified problems:

  1. xen-netback doesn't properly finalize device shutdown procedure (BTW not sure if there is defined procedure for backend-initiated shutdown), result:
xenbus_dev_shutdown: backend/vif/2/0 timeout closing device

and leaves backend xenstore state 5. Also backend doesn't set online to 0.
2. xen-netfront after forced remove (xenstore-rm /local/domain/X/device/vif/0) doesn't fully cleanup device state. Effect: after netvm restart and manual reconnect, device is immediately disconnected.
3. This all should be cleaned up by toolstack (libxl) at backend domain shutdown. But apparently it only take care of devices with frontend in just destroyed domain (not backend).

There is simple workaround:

qvm-prefs firewallvm -s netvm netvm

(note lack of setting netvm to "none" - it is intentional). Sometimes above needs to be executed twice (when the fist time timed out).

So I'm giving up with this ticket for now...

Member

marmarek commented Mar 8, 2015

Comment by marmarek on 7 Aug 2013 15:45 UTC
This issue is harder than I though... So far identified problems:

  1. xen-netback doesn't properly finalize device shutdown procedure (BTW not sure if there is defined procedure for backend-initiated shutdown), result:
xenbus_dev_shutdown: backend/vif/2/0 timeout closing device

and leaves backend xenstore state 5. Also backend doesn't set online to 0.
2. xen-netfront after forced remove (xenstore-rm /local/domain/X/device/vif/0) doesn't fully cleanup device state. Effect: after netvm restart and manual reconnect, device is immediately disconnected.
3. This all should be cleaned up by toolstack (libxl) at backend domain shutdown. But apparently it only take care of devices with frontend in just destroyed domain (not backend).

There is simple workaround:

qvm-prefs firewallvm -s netvm netvm

(note lack of setting netvm to "none" - it is intentional). Sometimes above needs to be executed twice (when the fist time timed out).

So I'm giving up with this ticket for now...

@marmarek marmarek removed their assignment Mar 8, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 8, 2015

Member

Comment by joanna on 16 Nov 2013 12:09 UTC
As an additional workaround we also now forbid to shutdown a vm if it's used as a netvm for other running vms. Also, the work-around given above works just fine, so I just added this to the wiki:

http://wiki.qubes-os.org/trac/wiki/QubesFirewall?action=diff&version=10&old_version=9

Closing.

Member

marmarek commented Mar 8, 2015

Comment by joanna on 16 Nov 2013 12:09 UTC
As an additional workaround we also now forbid to shutdown a vm if it's used as a netvm for other running vms. Also, the work-around given above works just fine, so I just added this to the wiki:

http://wiki.qubes-os.org/trac/wiki/QubesFirewall?action=diff&version=10&old_version=9

Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment