Lost packages after restart



  • pfSense 1.2 Beta 2
    Install system from LiveCD and after install squid, lightsquid and dashboard.
    after rebooting on procedure 'Syncing packages' (while on boot) for squid executed Sync procedure, but for lightsquid and dashboard executed install/deinstall procedure. On pfSense 1.2 Beta 1 this not present
    What this may be, bug? Any idea?
    Thx.



  • I've seen similar things with the 1.2 Beta 1 snapshots and "lost" packages on reboots (and also had multiple "deinstall"…"reinstall" cycles for Dashboard in particular).  You're not alone :)

    (Personally, I'm not terribly comfortable with the packages being automatically updated on boot.  I can understand why some people may like it, but I don't want a reboot to break my system.)

    The biggest problem I've found is that when something breaks this way it's often inconsistent.  Parts of the package are gone, the system thinks it's still installed but you can't de-install it.  The only clean fix is to install, de-install and then re-install :(



  • Packages are not supposed to update on bootup UNLESS there is a missing file.

    So which package is updating on bootup so we can fix it.



  • I have seen this with Dashboard and snort. With snort it can result in 2 entries in the services menu as well a reinstall normally fixes it.



  • @sullrich:

    Packages are not supposed to update on bootup UNLESS there is a missing file.

    So which package is updating on bootup so we can fix it.

    So far I remember the following breaking or being reinstalled:

    FreeRADIUS
    Snort
    Dashboard

    I'm pretty sure that others did too - each worked before the reboot, though each reboot was also for an upgrade of pfSense.



  • Look in your system logs after a reboot.  It should say something to the affect of "missing xyz, reinstalling".

    Please let me know which files are missing and or incorrect that the logs are showing.



  • Nothing in the system.log before today (having just upgraded to beta2).  In the logs that are left on the log server there's no reference to "missing…", but it only goes back a week and the last upgrade was before that.

    On the bright side, I just upgraded to beta2 and had no problems - it may have been a quirk of the particular snapshot(s) I was running.



  • Snort was fine this time however Dashboard produced the folowing

    Jul 12 08:28:19 pfwall1 php: : Resyncing configuration for all packages.
    Jul 12 08:28:19 pfwall1 php: : XML error: not well-formed (invalid token) at line 1
    Jul 12 08:28:19 pfwall1 php: : Could not locate dashboard.inc.
    Jul 12 08:28:20 pfwall1 php: : Beginning package installation for Dashboard.
    Jul 12 08:28:31 pfwall1 dnsmasq[549]: reading /var/dhcpd/var/db/dhcpd.leases
    Jul 12 08:28:28 pfwall1 php: : Beginning package installation for Dashboard.

    I rebooted twice and it did the same again. It also appears to install dashboard once and then do it again?
    I have had problems where I will end up with 2 instances of snort because of the reinstall. reinstalling the package fixes this.



  • morbus, make sure you are on the latest snapshot.



  • I am on 1.2b2 from the cd iso at the moment. I will put a snapshot on tomorrow give it another go and let you know



  • Well after upgrading to 1.2-BETA-2-TESTING-SNAPSHOT-07-05-2007 it is still double installing the Dashboard package.

    Jul 13 08:44:05 pfwall2 php: : Resyncing configuration for all packages.
    Jul 13 08:44:05 pfwall2 php: : XML error: not well-formed (invalid token) at line 1
    Jul 13 08:44:05 pfwall2 php: : The Dashboard package is missing required dependencies and must be reinstalled.
    Jul 13 08:44:05 pfwall2 php: : The Dashboard package is missing required dependencies and must be reinstalled.
    Jul 13 08:44:05 pfwall2 php: : Could not locate dashboard.inc.
    Jul 13 08:44:06 pfwall2 php: : Beginning package installation for Dashboard.
    Jul 13 08:44:11 pfwall2 kernel: tcp_output: inc sockbuf, old 65856, new 74048, sb_cc 65834, snd_wnd 54559, sendwnd 54559
    Jul 13 08:44:12 pfwall2 php: : Beginning package installation for Dashboard.

    There also seem to be some problems with installing and removing this package. I had to have several attempts to install the package as it didn't install properly after the upgrade. It was in the installed package list but wouldn't reinstall properly I had to reboot in the end.
    Now if I uninstall it the dashboard remains?



  • I've found that, for packages that are in the install limbo (pfSense thinks they are installed but you can't un-install them), one fix is to take the installation URL from the available packages screen for another package and then change the package name (ie, copy the URL for installing squid and change "squid" to "dashboard").  At this point you can then install (and then uninstall) the package in question.

    At least, it's worked for me so far ;)



  • Don't think that will work as I can uninstall dashboard it just has no effect. ie not back to the old status page.

    It is not a problem as I like Dashboard and want to keep it. It was just a FYI



  • Ok, now this is just plain odd…

    I've just noticed that, at some point post installing beta2, my FreeRADIUS install vanished, but in the dashboard services tab and the Status:Services tab I have Squid listed twice...

    Re-installing FreeRADIUS uses my old config.

    The only references to to FreeRADIUS in my system log is from the 11th, when I installed the beta2 snapshot and de-installed then re-installed FreeRADIUS to resolve having it show twice in the Services tab.

    I'm going to try to install rsync onto my pfSense box so I can take automated backups of it (rsnapshot).  That way if this happens again I'll be able to check for any changes that'll help you track down what's going on.



  • I've just noticed that, at some point post installing beta2, my FreeRADIUS install vanished, but in the dashboard services tab and the Status:Services tab I have Squid listed twice…

    This is not to surprising (I have done this working on new packages) all this info is in your config.xml file and each part is separate.

    You may have extra <service>entries in your config.xml file leading to the extra entries in the services status pages.

     <service><name>snort</name>
    			<rcfile>snort.sh</rcfile>
    			<executable>snort</executable></service> 
    

    Re-installing FreeRADIUS uses my old config.

    All the config for a package remains after you remove it just the menu options disappear.
    I have had packages attempt to reinstall them selves after upgrading and usually the disappear due to the double install problem.

    There is a nice backup script on the m0n0 site which I think works for pfsense as well</service>



  • @morbus:

    Re-installing FreeRADIUS uses my old config.

    All the config for a package remains after you remove it just the menu options disappear.

    Yeah, but I didn't remove the package.

    @morbus:

    There is a nice backup script on the m0n0 site which I think works for pfsense as well

    Well, I took the "simple" approach and simply copied across the rsync binary from another FreeBSD 6.2 box.  I'm now taking backups every 6 hours (via rsnapshot).  The next time something strange happens I'll at least be able to identify the changes.



  • @Cry:

    @morbus:

    Re-installing FreeRADIUS uses my old config.

    All the config for a package remains after you remove it just the menu options disappear.

    Yeah, but I didn't remove the package.

    Ok so it messed up the install/reinstall but the same applies. pfSense wont remove the config from the xml file therefore when you reinstall it is will still know your setup (pretty useful feature really)



  • @morbus:

    Ok so it messed up the install/reinstall but the same applies. pfSense wont remove the config from the xml file therefore when you reinstall it is will still know your setup (pretty useful feature really)

    Yeah, one for which I'm very grateful  :)



  • Section <include_file>on package xml file must contains fill include path

    <include_file>/usr/local/pkg/myself_file.inc</include_file>

    function sync_package from pkg-utils.inc not checked this (get_pkg_depends do it for example)

    		/* Bring in package include files */
    		if (isset($pkg_config['include_file']) && $pkg_config['include_file'] != "") {
    			$include_file = $pkg_config['include_file'];
    			if (file_exists($include_file))
    				require_once($include_file);
    			else
    				if (file_exists($include_file)) {
    					require_once($include_file);
    				} else {
    					log_error("Could not locate {$include_file}.");
    					install_package($package['name']);
    					uninstall_package_from_name($package['name']);
    					install_package($package['name']);
    				}
    		}
    
    ```</include_file>

Log in to reply