Bug 848089

Summary: xfce4-session-logout not working
Product: [Fedora] Fedora Reporter: Pascal Dupuis <cdemills>
Component: NetworkManagerAssignee: Dan Williams <dcbw>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 17CC: danw, dcbw, jpopelka, kevin, maxamillion, thozza
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-17 18:04:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Pascal Dupuis 2012-08-14 14:52:50 UTC
Description of problem:
Launching xfce4-session-logout, either trough the GUI, eitheir trough CLI, never succeed

Version-Release number of selected component (if applicable):
xfce4-session 4.8.3 (Xfce 4.8)


How reproducible:
Always

Steps to Reproduce:
1. Fedora Main Menu->Disconnect Window -> hibernate or suspend
2.
3.
  
Actual results:
Network connections are closed then re-openened

Expected results:
network connection closed, then machine going to suspend or hibernate

Additional info:
did "strace -o xfce4-logout xfce4-session-logout --hibernate".

Suspicious activity:

socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_FILE, sun_path=@"/tmp/.X11-unix/X0"}, 20) = 0
getpeername(3, {sa_family=AF_FILE, sun_path=@"/tmp/.X11-unix/X0"...}, [20]) = 0
uname({sys="Linux", node="tatooine.example.org", ...}) = 0
getsockname(3, {sa_family=AF_FILE, NULL}, [2]) = 0
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"", 0}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, {"Q\
212\222r?\244N'\211v|\200\276\371\270h", 16}, {"", 0}], 6) = 48
recvfrom(3, 0xc02bd0, 8, 0, 0, 0)       = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\1\0\v\0\0\0r\2", 8, 0, NULL, NULL) = 8

after this point, there are a lot of 
recvfrom(3, 0xc052e4, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
Then it gives up.

Comment 1 Kevin Fenzi 2012-08-14 17:44:26 UTC
1. Has it always done this? Or only recently? 

2. Does this only happen on suspend/resume? Or does logout or restart or shutdown do it too?

Comment 2 Pascal Dupuis 2012-08-15 08:11:10 UTC
1. Installed Fedora17 from live XFCE ISO; then updated regulary. Suspend and hibernate never worked. Platform is an AspireOne 722, installed the 64 bits version.

2. Only suspend and hibernate are concerned. Logout, shutdown and restart all work as expected.

Regards.

Comment 3 Kevin Fenzi 2012-08-15 15:34:45 UTC
ok, does: 

su -c 'pm-suspend' 

in a terminal work? Or provide any more errors or output?

Comment 4 Pascal Dupuis 2012-08-15 20:49:35 UTC
Didn't work either, but I had a look into /var/log/pm-suspend.log, and found this:

Running hook /usr/lib64/pm-utils/sleep.d/56dhclient suspend suspend:
./ifcfg-McDonald's_France: line 17: unexpected EOF while looking for matching `"
'
./ifcfg-McDonald's_France: line 22: syntax error: unexpected end of file
/usr/lib64/pm-utils/sleep.d/56dhclient suspend suspend: Returned exit code 2.

I used a few times the free Wifi Access in a McDo in France. Automatic configuration scripts were saved. I solved this problem by
1) locate '*ifcfg-McDonal*'
2) changed to the dirs containing an instance of those files: /etc/sysconfig/networking/profiles/default/; /etc/sysconfig/networking/devices; /etc/sysconfig/network-scripts
3) rm '*McDo*'; there was each time an ifcfg-McDonald's_France and a keys-McDonald\'s_France

Now suspend and resume do work, this had no link to platform but with special characters in file name handling.

The culprit is within 56dhclient:
 for ifcfg in ifcfg-* ; do
 . ./"${ifcfg}"

This loop should be replaced by
find . -name "ifcfg-*" -print0 |xargs -0 some_aux_script


where some_aux_script should receive file names, source them and perform the same actions as  those contained in the original script  "for" loop.

Regards

Pascal

Comment 5 Kevin Fenzi 2012-08-15 22:05:26 UTC
ok, that script is in the dhcp package. 

Moving over there for further action...

Comment 6 Jiri Popelka 2012-08-16 08:01:40 UTC
Seems like duplicate of bug #846081.

Had you used system-config-network to edit network settings ?

Comment 7 Pascal Dupuis 2012-08-17 16:56:29 UTC
(In reply to comment #6)
> Seems like duplicate of bug #846081.
> 
> Had you used system-config-network to edit network settings ?

No, I went through NetworkManager: display the list of available network, and manually choosing one of them.

Regards

Pascal

Comment 8 Jiri Popelka 2012-08-17 18:02:09 UTC
Strange. If you manage to reproduce the problem please attach the /etc/sysconfig/network-scripts/ifcfg-McDonald's_France file. According to my tests the apostrophe in file name doesn't matter but it does matter if it's in some value in the file (then the value needs to be in double quotes).

Jirka Klimes (NetworkManager developer) told (bug #802711, comment #4) me that NM puts double quotes around values. In bug #846081 we discovered that it's system-config-network what doesn't put double quotes around the values that contain apostrophe. So I'm a little puzzled now when you say that you had used NM and not system-config-network.

Comment 9 Jiri Popelka 2012-08-17 18:04:00 UTC
Oh, I didn't mean to reassign this to NM, but when it's there we can make it a dupe of bug #802711.

*** This bug has been marked as a duplicate of bug 802711 ***