Bugs in FOG 0.33


  • Senior Developer

    This is a bug that I can’t give any fix for. I think it’s something all systems would have an issue with.

    I have a windows system with a Hybrid SSD Drive. It will attempt to upload the image, but it keeps on hanging and eventually says something to the effect of pigz not responding last 120 seconds. The system that actually holds the images dies due to a kernel panic. I think this is specific to the Hybrid Drive, but I don’t have an alternate HDD to test with, unless I build a VM, which I will do eventually. Maybe this can be a warning rather than a bug, but I don’t know where else to place this.

    The reason I believe it’s due to the HDD and not an issue with the actual imaging system is because looking up similar issues for this somebody recommended doing a chkdsk on the system. I just did the 3 phase chkdsk and it would hang throughout that as well. From my experience, usually 3 phase chkdsk is generally quite fast. It appeared that the Hybrid part (the ssd if you will) makes for a relatively large buffer, but the buffer can only hold so much data on the read state. Then it pauses, pushes the data where it needs to, then starts the cycle over again. Hence the pausing. I don’t know what this would look like on the write state as I haven’t been able to create an image for my Windows system.


  • Senior Developer

    From the dashboard, when you click on the Disk Usage Graph, it used to give you hardware information and gives a debug message saying to use the old include style information. When you click on the old include style it requests that you login. You type your information and it just requests you to login again. However, I’ve fixed the link to actually give us a class that would be referenced.

    I made adjustments (again just for the pretty factor of calculation of disk space) and created a new file.

    Inventory of files changed/added are:

    {fogwebdir}/lib/pages/hwinfo.class.php (created the class file)
    {fogwebdir}/status/hw.php (adjusted to obtain information and calculate sizes more human readable.)

    [url="/_imported_xf_attachments/0/365_hwinfo.class.php?:"]hwinfo.class.php[/url][url="/_imported_xf_attachments/0/366_hw.php?:"]hw.php[/url]


  • Senior Developer

    Found an issue with the Disk Usage Graph on the main page of the web interface. What happens is when the used space is equal to the total available space, the graph only show’s 50% usage.

    This is due to the way, that I can tell, the jquery.flot.pie.js script interprets the information in the calcTotal and combined functions.

    Attached is the modified file that seems to work appropriately. This file goes in {fogwebdir}/managment/js/

    I’ve also made a few changes to {fogwebdir}/management/js/fog.dashboard.js and {fogwebdir}/status/freespace.php so that it interprets the information accurately from Available and Used space and displays in EiB thru KiB. The method it uses currently obtains the appropriate Available space, but misinterprets the Used spaced. What I mean by this is when a file system is created there is always a portion that is unavailable space. The math takes the total size of the drive and subtracts the actual free space which is not necessarily an accurate representation of what the file system actually has.

    So for inventory the files I’ve changed/added for the Dashboard area are:
    {fogwebdir}/management/js/fog.dashboard.js (named as fog.dashboard.txt for upload)
    {fogwebdir}/management/js/jquery.flot.pie.js (named as jquery.flot.pie.txt for upload)
    {fogwebdir}/status/freespace.php

    [url="/_imported_xf_attachments/0/362_fog.dashboard.txt?:"]fog.dashboard.txt[/url][url="/_imported_xf_attachments/0/363_jquery.flot.pie.txt?:"]jquery.flot.pie.txt[/url][url="/_imported_xf_attachments/0/364_freespace.php?:"]freespace.php[/url]


  • Senior Developer

    [quote=“Tom Elliott, post: 14110, member: 7271”]Another minor issue that I’ve so far noticed is:

    Reports, all of the pages will not work and it appears it’s because it has to communicate with the database. This communication is lost because the mysql_query statements within this pages look to be sending to a variable $conn that doesn’t exist for those pages. Also, as it needs to communicate with the database, the base configuration files are not existing either. My best suggestion would be to make a configuration file that stores the references needed within a file called something like base.inc.php that includes the base required files of commons/init.php commons/init.database.php. For the $conn variable, suggest an include statement of the base.inc.php so that the $conn system can be accessed even though it’s not directly defined in the file. So, basically, all main files should have an include BASEPATH . ‘commons/base.inc.php’; statement in them. This would also work for all other file that request this same information.

    Found out that Pending MACs.php file the reference to class HostManager works if called like this:

    $hostMan = new HostManager(); Rather than
    $hostMan = $FOGCore->getClass(‘HostManager’);

    Fixed and working on my side.

    My base.inc.php file is:

    <?php
    /* This file just stores the heading information for including *

    • In the FOG System. This should minimize code lines. *
    • */
      if (!defined(‘BASEBATH’))
      require_once(‘system.php’);
      require_once(BASEPATH . ‘/commons/config.php’);
      require_once(BASEPATH . ‘/commons/init.php’);
      require_once(BASEPATH . ‘/commons/init.database.php’);
      $conn = @mysql_connect( DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD);
      ?>

    and is located in commons.

    Then added the line to the files needed. Though I guess in the management/index.php all you should need is the reference :

    In the reports *.php files.
    include BASEPATH . ‘/commons/base.inc.php’;[/quote]

    I was/am able to remove the need of the $conn variable declaration in base.inc.php and reference the global variable for database connections within the reports directory as:
    $this->conn

    So a simple sed script is really useful to fix this. Also with this, the $hostMan function in Pending MACS.php can now be referenced as: $this->FOGCore->getClass(‘HostManager’);

    In the {fogwebdir}/management/*.php files, place near the top:

    include ‘…/commons/base.inc.php’;

    In the {fogwebdir}/commons/base.inc.php file just have:

    base.inc.php
    <?php
    /* This file just stores the heading information for including *

    • In the FOG System. This should minimize code lines. *
    •                                                         */      
      

    if (!defined(‘BASEBATH’))
    require_once(‘system.php’);
    require_once(BASEPATH . ‘/commons/config.php’);
    require_once(BASEPATH . ‘/commons/init.php’);
    require_once(BASEPATH . ‘/commons/init.database.php’);
    ?>

    Hopefully somebody see’s this all.

    Thanks,


  • Senior Developer

    Fixed / found issue on management/reports/Pending MACS.php. The reference of

    $hostMan = $FOGCore->getClass(‘HostManager’);

    Doesn’t do anything as the class in reference is technically non existent. To fix this and get report is to change that line to:

    $hostMan = new HostManager();

    This seems to allow it to work Properly.

    EDIT:

    now we can go, more or less, back to the reference sample originally intended with a minor change.

    Change the line:

    $hostMan = $FOGCore->getClass(‘HostManager’);

    To:

    $hostMan = $this->FOGCore->getClass(‘HostManager’);


  • Senior Developer

    Another minor issue that I’ve so far noticed is:

    Reports, all of the pages will not work and it appears it’s because it has to communicate with the database. This communication is lost because the mysql_query statements within this pages look to be sending to a variable $conn that doesn’t exist for those pages. Also, as it needs to communicate with the database, the base configuration files are not existing either. My best suggestion would be to make a configuration file that stores the references needed within a file called something like base.inc.php that includes the base required files of commons/init.php commons/init.database.php. For the $conn variable, suggest an include statement of the base.inc.php so that the $conn system can be accessed even though it’s not directly defined in the file. So, basically, all main files should have an include BASEPATH . ‘commons/base.inc.php’; statement in them. This would also work for all other file that request this same information.

    Found out that Pending MACs.php file the reference to class HostManager works if called like this:

    $hostMan = new HostManager(); Rather than
    $hostMan = $FOGCore->getClass(‘HostManager’);

    Fixed and working on my side.

    My base.inc.php file is:

    <?php
    /* This file just stores the heading information for including *

    • In the FOG System. This should minimize code lines. *
    •                                                         */      
      

    if (!defined(‘BASEBATH’))
    require_once(‘system.php’);
    require_once(BASEPATH . ‘/commons/config.php’);
    require_once(BASEPATH . ‘/commons/init.php’);
    require_once(BASEPATH . ‘/commons/init.database.php’);
    $conn = @mysql_connect( DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD);
    ?>

    and is located in commons.

    Then added the line to the files needed. Though I guess in the management/index.php all you should need is the reference :

    include ‘…/commons/base.inc.php’;
    In the reports *.php files.
    include BASEPATH . ‘/commons/base.inc.php’;


  • Senior Developer

    Found out a few things.

    The init.gz fog.man.reg script for full host registration is broken. (EDIT: Not broken just not appropriate as OSID is now based on Image rather than per system.)

    This is because, your mysql database for fog removes the table from hosts hostOS. This itself isn’t a huge deal as I think your method of assigning the OSID to the image file rather than each system is more appropriate. But your scripts need to be adjusted to make this modification. fog.man.reg doesn’t need to get the host osid and should be removed. I’ve updated the file and will post it as soon as I can.

    Also, under this same issue, the /var/www/html/fog/service/auto.register.php file needs to stop trying to put in the hostOS field as it will fail due to the table not existing in the first place. Removing all references for osid realosid and hostOS seems to have corrected this issue, I will post this file as well when i have more time. I’ve modified them to help out in my little way. I’ve also modified the /var/www/html/fog/management/reports/Inventory.php file to work more appropriately as well so it pulls it imageOSID rather than trying to pull information from a non-existent table which will cause failure.

    I hope I’m not stepping on anyone’s shoes here and have helped out in my little way.

    Also, if anyone’s interested, I’ve created my own init.gz and bzImage to work off of the most current kernels (3.10.5). The init.gz file has bash included with it as well.

    EDIT:

    Got the files and they are now attached.

    auto.register.php should be a simple placement into {fogwebdir}/service/ , and I’m sure you could leave the original fog.man.reg file in place with osid inputs because the auto.register.php ultimately is in charge of writing the data to the database.

    For nice housekeeping, the fog.man.txt just needs to be renamed (as the forums won’t allow an upload of a file ending in extension .reg) and chmod’ed as necessary within the init.gz /bin directory.

    Hopefully this helps. Thank you,

    [url="/_imported_xf_attachments/0/359_auto.register.php?:"]auto.register.php[/url][url="/_imported_xf_attachments/0/360_fog.man.txt?:"]fog.man.txt[/url]



  • Please update the init scripts for dependency based booting on Debian. See [url]http://fogproject.org/forum/threads/0-32-installation-script-messes-on-debian.4084/[/url]

    This haven’t been done in revision 899 yet.

    Thank you.



  • I’m also assuming the re-write includes clearing cruft from the install, to that effect I can find no reason to keep the following directories and files.

    /fog/public
    /fog/public/randomimage.php
    /fog/public/imagepool

    There is no explanation or use for these as far as I can tell and they don’t seem to be referenced from anywhere else in fog.



  • So poking round the codebase for .33 from SVN.

    Snapins are borked, whenever I try and add a new one I get a blank page, checking the apache logs shows…

    [Thu Apr 18 18:10:19 2013] [error] [client ::1] PHP Fatal error: Call to undefined method SnapinManager::isPasswordValid() in /var/www/fog/lib/pages/SnapinManagementPage.class.php on line 230, referer: [url]http://localhost/fog/management/index.php?node=snapin&sub=add[/url]
    [Thu Apr 18 18:19:31 2013] [error] [client ::1] PHP Fatal error: Call to undefined method SnapinManager::isPasswordValid() in /var/www/fog/lib/pages/SnapinManagementPage.class.php on line 230, referer: [url]http://localhost/fog/management/index.php?node=snapin&sub=add[/url]
    [Thu Apr 18 18:21:51 2013] [error] [client ::1] PHP Fatal error: Call to undefined method SnapinManager::isPasswordValid() in /var/www/fog/lib/pages/SnapinManagementPage.class.php on line 230, referer: [url]http://localhost/fog/management/index.php?node=snapin&sub=add[/url]
    [Thu Apr 18 18:32:49 2013] [error] [client ::1] PHP Fatal error: Call to undefined method SnapinManager::isPasswordValid() in /var/www/fog/lib/pages/SnapinManagementPage.class.php on line 230, referer: [url]http://localhost/fog/management/index.php?node=snapin&sub=add[/url]



  • [quote=“Fernando Gietz, post: 3391, member: 13”]I’ve problems under Centos and the FOg daemons: FOGReplicator,FOGScheduler and FOGMulticastManager.

    But FOGShceduler daemon:

    [CODE]
    [root@r800145 administrador]# /etc/init.d/FOGScheduler start
    Iniciando FOGTaskScheduler: [ OK ]
    [root@r800145 administrador]# PHP Warning: require_once(/var/www/html/fog/management/lib/Imageable.interface.php): failed to open stream: No such file or directory in /opt/fog/service/FOGTaskScheduler/FOGTaskScheduler on line 58
    PHP Fatal error: require_once(): Failed opening required ‘/var/www/html/fog/management/lib/Imageable.interface.php’ (include_path=’.:/usr/share/pear:/usr/share/php’) in /opt/fog/service/FOGTaskScheduler/FOGTaskScheduler on line 58
    [/CODE]

    The file [B]/var/www/html/fog/management/lib/Imageable.interface.php [/B]don’t exists[B].[/B]

    [CODE][root@r800145 lib]# pwd
    /var/www/html/fog/management/lib
    [root@r800145 lib]# ls -la
    total 20
    drwxr-xr-x 5 apache apache 4096 may 4 21:47 .
    drwxr-xr-x 15 apache apache 4096 may 4 21:47 …
    drwxr-xr-x 5 apache apache 4096 may 4 21:47 jpgraph
    drwxr-xr-x 3 apache apache 4096 may 4 21:47 ssh
    drwxr-xr-x 6 apache apache 4096 may 4 21:47 .svn
    [/CODE][/quote]

    I can confirm this. These (mainly) class files are there when you upgrade from 0.32 to 0.33B but [B]are not there[/B] with a fresh installation. No wonder if you look at: [url]https://freeghost.svn.sourceforge.net/svnroot/freeghost/trunk/packages/web/management/lib/[/url]
    [U][I][B]If it is not there to checkout, there is noting to install so it will not get installed.[/B][/I][/U]
    When it is not installed there will be no runnable TaskScheduler. And without that FOG is useless.
    The need for these missing files is advertised here: [url]https://freeghost.svn.sourceforge.net/svnroot/freeghost/trunk/packages/service/FOGTaskScheduler/FOGTaskScheduler[/url]
    So testing 0.33 from a 0.32 upgrade might work but a fresh SVN checkout will never result in operational code!

    I installed this on Debian Wheezy today (April 12th 2013).
    All issues with the installer are also still there: it forces installation of Debian packages even if alternatives are available (like MariaDB instead of MySQL) and overwrites configuration files without warning.
    Another issue popped up too: ftp password/fog user was not resettable. (I changed the password of the system user “fog” and also the pwd in the congig.php file for the FTPserver). It kept trying the old password. The old password was still there from the 0.32 installation but was no longer valid for some reason. So no smooth migration there. I must admit though that this is a complex kerberos/pam integrated system.



  • [quote=“giejo, post: 11429, member: 3535”]Hi,
    thanks for your great work on FOG !
    i have installed FOG 0.33 on centOS 6.4 but i can’t deploy or upload
    i have always an error :
    Fog user was created with the installer
    i have checked user rights on folder and reset his password but still no luck …

    any ideas ?[/quote]

    To be precise, i have tried a fresh new install on ubuntu 12.04 and no problems !



  • Hi,
    thanks for your great work on FOG !
    i have installed FOG 0.33 on centOS 6.4 but i can’t deploy or upload
    i have always an error :

    [QUOTE]Failed to create deploy task
    FOGFTP: Login failed. Host: x.x.x.x, Username: fog, Password:[/QUOTE]

    Fog user was created with the installer
    i have checked user rights on folder and reset his password but still no luck …

    any ideas ?


  • Developer

    I have found a little bug.
    In Inventory.php (management/reports/Inventory.php) the SQL has a mistake: the hostOS atribute not exists in hosts table.
    [CODE]— Inventory.php (revisión: 1)
    +++ Inventory.php (revisión: 2)
    @@ -73,8 +73,7 @@
    FROM
    hosts
    inner join inventory on ( hosts.hostID = inventory.iHostID )

    •          left outer join images on ( hostImage = imageID )
      
    •          left outer join supportedOS on ( hostOS = osID )";
      
    •          left outer join images on ( hostImage = imageID )";
      

    $res = mysql_query( $sql, $conn ) or die( mysql_error() );

    while ( $ar = mysql_fetch_array( $res ) )
    [/CODE]

    If you run the SQL in DB:

    [I]mysql> SELECT [/I]
    [I] -> * [/I]
    [I] -> FROM [/I]
    [I] -> hosts [/I]
    [I] -> inner join inventory on ( hosts.hostID = inventory.iHostID )[/I]
    [I] -> left outer join images on ( hostImage = imageID )[/I]
    [I] -> left outer join supportedOS on ( hostOS = osID );[/I]
    [I]ERROR 1054 (42S22): Unknown column ‘hostOS’ in ‘on clause’[/I]



  • I use FOG constantly at work all day, so if anything specific needs to be tested, I can definitely help out as well. This is such an amazing piece of software and has made my life so much easier, kudos to you kind sirs



  • [quote=“ssx4life, post: 10651, member: 268”]This might sound a bit silly, but do we really want to support windows 8? ;) (I’m 1/2 kidding here)[/quote]

    Really? If Win 8 support is the hold up, then I say release without it. Then work on support in the next release. BTW, those of you that don’t like Windows 8, just install Classic Shell ([url]http://classicshell.net/[/url]).

    What is the status of the project? It has been a while since I’ve done anything. Do we need more specific testing at this point?

    Cheers,
    astrouga



  • just wanted to point out that on 12.04 with the most recent svn, the plugin management within the fog web interface is no longer functioning. It reports this error “FOG DEBUG: FOGPageManager: Class: PluginManagementPage, Method:activate, Error: Method not found in class, defaulting to index()”



  • Sry for the question. Is ist right that in actual svn 898 group feature is still missing? (Group hosts for multicast deploy) Link is not showing up.


  • Moderator

    [quote=“falko, post: 10656, member: 48”]I must admit I am not a fan of Win 8 :)[/quote]

    You don’t have to be a fan of it, but we still need to deploy it. Right now I keep getting pushed to get windows 8 on tablets. I also use it now on my home PC and recently now I use it on my desktop PC at work, though I keep my domain PC as windows 7 for testing applications etc. I would love to roll out widows 8 for tablets, I think users could benefit greatly. For desktops I don’t seen any legitimate reason.



  • Hello!
    I want to thank you for labeling the links! That is just what I needed. There is a spelling mistake though. It reads “User Mananagement” and should say “User Management”
    Again thank you. If there is anything I need to help you with. Just please let me know.


Log in to reply
 

623
Online

6.1k
Users

13.5k
Topics

127.4k
Posts