Bug 1403456

Summary: pacrunner needs to be restarted to accept configuration
Product: [Fedora] Fedora Reporter: Brian J. Murrell <brian>
Component: pacrunnerAssignee: David Woodhouse <dwmw2>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 25CC: dwmw2
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: pacrunner-0.11-1.fc26 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-09 19:13:03 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:

Description Brian J. Murrell 2016-12-10 13:16:51 UTC
Description of problem:
After a system boot, pacrunner needs to be restarted again before it will accept a PAC configuration file.

Version-Release number of selected component (if applicable):
pacrunner-0.7-7.fc24.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Configure system to poke a configuration into pacrunner on boot
2. Test with "proxy" command once booted
3.

Actual results:
proxy command returns "direct://" for a url that should proxy

Expected results:
proxy command should return the proxy for a url that should proxy

Additional info:
In /etc/rc.d/rc.local I have:

# until NM does this, load the pacrunner service
gdbus call --system --dest org.pacrunner --object-path /org/pacrunner/manager --method org.pacrunner.Manager.CreateProxyConfiguration "{'Method': <'auto'>, 'URL': <'http://server.example.com/proxy.pac'>}"

to poke a configuration into pacrunner.  I have enabled rc.local and it is being run:

$ systemctl status rc-local.service
● rc-local.service - /etc/rc.d/rc.local Compatibility
   Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
   Active: active (exited) since Fri 2016-12-09 08:36:09 EST; 23h ago
  Process: 1494 ExecStart=/etc/rc.d/rc.local start (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4915)
   CGroup: /system.slice/rc-local.service

Dec 09 08:36:00 pc.example.com systemd[1]: Starting /etc/rc.d/rc.local Compatibility...
Dec 09 08:36:09 pc.example.com rc.local[1494]: (objectpath '/org/pacrunner/configuration0',)
Dec 09 08:36:09 pc.example.com systemd[1]: Started /etc/rc.d/rc.local Compatibility.

But even after the system is booted I cannot poke a configuration into pacrunner and have it work:

$ sudo gdbus call --system --dest org.pacrunner --object-path /org/pacrunner/manager --method org.pacrunner.Manager.CreateProxyConfiguration "{'Method': <'auto'>, 'URL': <'http://server.example.com/proxy.pac'>}"; proxy http://www.yahoo.com/
(objectpath '/org/pacrunner/configuration3',)
direct://

However if I kill pacrunner and do it again, it works:

$ sudo killall pacrunner
$ sudo gdbus call --system --dest org.pacrunner --object-path /org/pacrunner/manager --method org.pacrunner.Manager.CreateProxyConfiguration "{'Method': <'auto'>, 'URL': <'http://server.example.com/proxy.pac'>}"; proxy http://www.yahoo.com/
(objectpath '/org/pacrunner/configuration0',)
http://proxy.example.com.:3128

Comment 1 Brian J. Murrell 2016-12-13 11:42:36 UTC
I am noticing that the pacrunner package in F25 is version 0.7 which is circa Jun-2013 and the most recent release is 0.10 of just a couple of months ago.

Perhaps it's time to roll up the newer version?  Or is there something about the newer versions that we don't want?

Comment 2 David Woodhouse 2016-12-13 12:08:27 UTC
We absolutely do want the new version. It has all the GSoC goodness for multiple parallel configurations, which is required for the NetworkManager auto-proxy support (yay!).

Well, yay for you. I now live on a corporate network which just does NAT and/or transparent proxying :)

Comment 3 Brian J. Murrell 2016-12-13 13:37:43 UTC
I've rolled and installed an 0.10 RPM.  We'll see on next reboot if the dbus poking works.

Comment 4 Brian J. Murrell 2017-03-01 13:44:07 UTC
So, interestingly, I don't think I need to kill pacrunner to get the poking to work anymore since upgrading.

I don't think my /etc/rc.local poking technique is working though.  I still end up having to poke it after the machine has booted (typically from my user session with sudo once I notice proxy is not working).

I will have to investigate why it's not working in /etc/rc.local.

Comment 5 Brian J. Murrell 2017-03-01 13:44:47 UTC
That should be /etc/rc.d/rc.local of course.

Comment 6 Fedora Update System 2017-05-26 11:57:16 UTC
connman-1.34-1.fc26 pacrunner-0.11-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-2274ab8910

Comment 7 Fedora Update System 2017-05-26 19:35:58 UTC
connman-1.34-1.fc26, pacrunner-0.11-1.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-2274ab8910

Comment 8 Fedora Update System 2017-06-09 19:13:03 UTC
connman-1.34-1.fc26, pacrunner-0.11-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.