Bug 806106

Summary: Need better error than: 'Could not allocate dynamic translator buffer' when tcg execmem is blocked by selinux
Product: [Fedora] Fedora Reporter: Orion Poplawski <orion>
Component: qemuAssignee: Fedora Virtualization Maintainers <virt-maint>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: 19CC: amit.shah, berrange, cfergeau, clalancette, crobinso, dougsland, dwmw2, itamar, jforbes, jpardo, jyang, knoel, laine, laurent.rineau__fedora, libvirt-maint, pbonzini, rjones, scottt.tw, veillard, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-09 10:01:51 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Orion Poplawski 2012-03-22 17:53:08 EDT
Description of problem:

Trying to build a arm guest I get:

Unable to complete install: 'internal error Process exited while reading console log output: char device redirected to /dev/pts/2
Could not allocate dynamic translator buffer

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/create.py", line 1911, in do_install
    guest.start_install(False, meter=meter)
  File "/usr/lib/python2.7/site-packages/virtinst/Guest.py", line 1239, in start_install
  File "/usr/lib/python2.7/site-packages/virtinst/Guest.py", line 1307, in _create_guest
    dom = self.conn.createLinux(start_xml or final_xml, 0)
  File "/usr/lib/python2.7/site-packages/libvirt.py", line 2413, in createLinux
    if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirtError: internal error Process exited while reading console log output: char device redirected to /dev/pts/2
Could not allocate dynamic translator buffer

This is caused by:

type=AVC msg=audit(1332452726.155:640): avc:  denied  { execmem } for  pid=4962 comm="qemu-system-arm" scontext=system_u:system_r:svirt_t:s0:c171,c920 tcontext=system_u:system_r:svirt_t:s0:c171,c920 tclass=process

Solution is:

setsebool -P virt_use_execmem=on

But this error message isn't very helpful.
Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
Actual results:

Expected results:

Additional info:
Comment 1 Cole Robinson 2012-06-07 17:42:29 EDT
Maybe we can get something explicit out of qemu like 'execmem failed' or something, that might lead people to think selinux.
Comment 2 Cole Robinson 2012-07-10 06:48:26 EDT
*** Bug 753589 has been marked as a duplicate of this bug. ***
Comment 3 Richard W.M. Jones 2013-01-17 13:18:10 EST
This is indeed a very obscure error message.  I just confirmed
that it still affects Rawhide.
Comment 4 Fedora End Of Life 2013-04-03 13:57:26 EDT
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.

(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)

More information and reason for this action is here:
Comment 5 Cole Robinson 2013-09-09 10:01:51 EDT
Actually rawhide doesn't seem to be affected by this anymore, I have virt_use_execmem=off and no selinux warnings starting arm guests, so closing
Comment 6 Daniel Berrange 2013-09-09 10:06:21 EDT
The reason you don't see this is that we added a new 'svirt_tcg_t' domain type for TCG mode, which allows execmem. Libvirt will thus do the right thing. If you query the live XML you ought to see this svirt_tcg_t in use.