lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20170103132345.ukrmgn76xtzwcbzo@togusa.laytec.lan>
Date:   Tue, 3 Jan 2017 14:23:45 +0100
From:   Alexander Freudenberg <alexander.freudenberg@...lbox.org>
To:     linux-kernel@...r.kernel.org
Subject: PROBLEM: Kernel Bug: Updated gup.c/faultin_page() makes wine crash
 and system unresponsive

[1.] One line summary of the problem:
Wine crash makes system unresponsive.

[2.] Full description of the problem/report:
Since kernel patch-4.8.2-3, certain applications make the wineserver process stuck, running with full load and blocking user attempts to login. One has to send SIGKILL the wineserver to make the system responsive again. The issue is independent from the wine version, but affects kernels from 4.8.3 and above.

[3.] Keywords (i.e., modules, networking, kernel):
wine, wineserver, kernel

[4.] Kernel information
[4.1.] Kernel version (from /proc/version):
Linux version 4.8.13-ARCH

[4.2.] Kernel .config file:
--

[5.] Most recent kernel version which did not have the bug:
4.8.2

[6.] Output of Oops.. message (if applicable) with symbolic information
     resolved (see Documentation/oops-tracing.txt)
--

[7.] A small shell script or example program which triggers the
     problem (if possible)
Start the Altium Designer Installer in a new wine prefix:
wine ./AltiumDesignerSetup_16_1_12.exe
available at https://s3.amazonaws.com/altium-release-manager/Altium_Designer_16/AltiumDesignerSetup_16_1_12.exe

[8.] Environment
[8.1.] Software 
Linux togusa 4.8.13-ARCH #1 SMP PREEMPT Tue Jan 3 11:57:35 CET 2017 x86_64 GNU/Linux                           
                                                                                                                                         
GNU C                   6.2.1                                                                                                            
GNU Make                4.2.1                                                                                                            
Binutils                2.27                                                                                                             
Util-linux              2.28.2                                                                                                           
Mount                   2.28.2                                                                                                           
Module-init-tools       23                                                                                                               
E2fsprogs               1.43.3                                                                                                           
Jfsutils                1.1.15                                                                                                           
Reiserfsprogs           3.6.25                                                                                                           
Xfsprogs                4.8.0                                                                                                            
Pcmciautils             018                                                                                                              
Linux C Library         2.24                                                                                                             
Dynamic linker (ldd)    2.24                                                                                                             
Linux C++ Library       6.0.22                                                                                                           
Kbd                     2.0.3                                                                                                            
Console-tools           2.0.3                                                                                                            
Sh-utils                8.26                                                                                                             
Udev                    232                                                                                                              
Modules Loaded          ablk_helper aesni_intel aes_x86_64 ahci arc4 ata_generic atkbd button cdrom cifs coretemp crc16 crc32c_intel crc3
2_pclmul crc_itu_t crct10dif_pclmul cryptd dca dns_resolver drm drm_kms_helper e1000e edac_core ehci_hcd ehci_pci evdev ext4 fb_sys_fops 
firewire_core firewire_ohci fjes fscache fscrypto gf128mul ghash_clmulni_intel glue_helper hid hid_generic hmac hp_wmi i2c_algo_bit i2c_i
801 i2c_smbus i8042 input_leds intel_cstate intel_powerclamp intel_rapl intel_rapl_perf ioatdma ip_tables irqbypass isci iTCO_vendor_supp
ort iTCO_wdt jbd2 kvm kvm_intel led_class libahci libata libps2 libsas lpc_ich lrw mac_hid mbcache md4 mei mei_me mei_wdt mousedev mxm_wm
i nls_utf8 nouveau pata_acpi pps_core psmouse ptp rfkill sb_edac sch_fq_codel scsi_mod scsi_transport_sas sd_mod serio serio_raw shpchp s
nd snd_hda_codec snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_core snd_hda_intel snd_hwdep snd_pcm snd_timer so
undcore sparse_keymap sr_mod syscopyarea sysfillrect sysimgblt tpm tpm_infineon tpm_tis tpm_tis_core ttm uas usb_common usbcore usbhid us
b_storage video wmi x86_pkg_temp_thermal xhci_hcd xhci_pci x_tables                                                                      

[8.2.] Processor information (from /proc/cpuinfo):
processor       : 0                                                                                                                      
vendor_id       : GenuineIntel                                                                                                           
cpu family      : 6                                                                                                                      
model           : 45                                                                                                                     
model name      : Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz                                                                               
stepping        : 7                                                                                                                      
microcode       : 0x710                                                                                                                  

[8.3.] Module information (from /proc/modules):
--

[8.4.] Loaded driver and hardware information (/proc/ioports, /proc/iomem)
--

[8.5.] PCI information ('lspci -vvv' as root)
--

[8.6.] SCSI information (from /proc/scsi/scsi)
--

[8.7.] Other information that might be relevant to the problem
       (please look in /proc and include all information that you
       think to be relevant):
--
[X.] Other notes, patches, fixes, workarounds:
Workaround:
Reverting the changes to mm/gup.c/faultin_page() of commit 89eeba1594ac641a30b91942961e80fae978f839 within a recent kernel version solves the issue, but may reopen dirty COW:
---                                                                                                  
 mm/gup.c | 2 +-                                                                                     
 1 file changed, 1 insertion(+), 1 deletion(-)                                                       
                                                                                                     
diff --git a/mm/gup.c b/mm/gup.c                                                                     
index 22cc22e7432f..6cb23bfb0c74 100644                                                              
--- a/mm/gup.c                                                                                       
+++ b/mm/gup.c                                                                                       
@@ -422,7 +422,7 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,     
     * reCOWed by userspace write).                                                                  
     */                                                                                              
    if ((ret & VM_FAULT_WRITE) && !(vma->vm_flags & VM_WRITE))                                       
-           *flags |= FOLL_COW;                                                                      
+           *flags &= ~FOLL_WRITE;  // Temporary Wineserver fix                                      
    return 0;                                                                                        
 }                                                                                                   
                                                                                                     
--                                                                                                   
2.11.0                                                                                               

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ