Bug ID 1116568
Summary yast2 hostnames can freeze OS
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component YaST2
Assignee yast2-maintainers@suse.de
Reporter agraul@suse.com
QA Contact jsrain@suse.com
Found By ---
Blocker ---

Created attachment 790163 [details]
script to generate hosts files

## Summary
I've observed that the yast process' memory usage can grow to levels that stop
the whole operating system from responding. Even "magic SysRq" key combinations
are not handled correctly.

## What did I do?

I was looking into profiling `yast2 host` using rbspy. I already did so in a
VM, but wanted to compare that result to one from laptop directly. You can see
my laptop specs below. To see what takes time with parsing/displaying the
hostname and IP-address combinations I used a /etc/hosts file with 10.000
lines. Each had one IP, one hostname and three aliases, generated by a python
script (attached).
I monitored the process using htop, filtering for ruby (no other ruby process
was running during the time) and attached rbspy to it (rbspy record --pid
$PID_TAKEN_FROM_HTOP).


## What did I observe?

While the loading time of the 10.000 lines was already really long on the VM (~
13min), after 30min the loading was not finished on my laptop. One CPU thread
was at 100% whenever I checked it and memory usage grew. Before the laptop
became unresponsive, I saw more than 12 GiB of memory used by ruby
(non-swapped). My laptop started to take a long time for tasks like changing
focus and the background music I had running started to stutter. I left the
computer running for a few minutes, then realized it probably would not respond
anytime soon. I tried the "magic SysRq" combination "REISUB", but that did not
do anything I could observe, so I hard-reset the laptop.

## Laptop Specs
Dell Latitude 7480
RAM: 15.5 GiB
SWAP: 8 GiB
CPU: 4 �� Intel�� Core��� i7-6600U CPU @ 2.60GHz
OS: openSUSE Tumbleweed 20181112


You are receiving this mail because: