32 bit vs. 64 bit Processor Bug?

mike-h30 wrote on Monday, December 24, 2007:

I have installed OpenEMR 2.8.3 on SUSE Linux Enterprise Server 10 SP1 on both a 32 bit machine and 64 bit machine.  I have followed the setup instructions exactly on both machines for OpenEMR-2.8.3.  The problem that I am seeing has to do with the calendar.  On the 32 bit machine the calendar works as intended.  However, on the 64 bit machine, the calendar window is blank ( just a white background).  Also, under the “Administration” tab on the 64 bit machine,  the sub menus (“Clear Smarty Cache” and “Test System”) display the appropriate PHP page. The sub menu “Categories” displays a prompt when I click on it to “open ‘index.php’ with Gedit or save it to disk.”  The last sub menu “Category Limits” takes two clicks to display the appropriate PHP page: On the first click, all that is displayed is a white background, then after clicking “Category Limits” a second time, the page displays.  So in sum, I am not seeing the calendar on the 64 bit machine.  Please advise.

-Mike

sunsetsystems wrote on Monday, December 24, 2007:

A white page usually indicates a PHP error.  Find out where PHP is logging its errors (usually somewhere in /var/log/; check php.ini) and look there to see what’s going on.

Rod
www.sunsetsystems.com

mike-h30 wrote on Tuesday, December 25, 2007:

Thanks Rod,

I will check out those logs.  However, I am curious as to why there would be errors when I installed OpenEMR-2.8.3 exactly the same on both machines?  I followed the setup instructions exactly as written in the current release’s setup.  I am puzzled as to why the 64 bit version of SUSE Linux Enterprise Server 10 SP1(x86_64) would yield different results then the 32 bit(i386) version.  The versions of MySQL, PHP, and Apache 2 are identical on both machines.

MySql: 5.0.26-12.13
Apache2: 2.2.3-16.15
PHP: 5.1.2-29.45

I installed the 32 bit version on my Pentium M laptop to use as my development environment.  The 64 bit version is on my production server which is the newer Core Duo chipset.  Just curious if processor type is a factor.

Thanks and Happy Holidays!

-Mike

sunsetsystems wrote on Tuesday, December 25, 2007:

As far as I know there is nothing in OpenEMR that depends on processor type.  So yes, it will be interesting to learn what sort of error is occurring.  Perhaps there is some difference in the default PHP configuration.

Rod
www.sunsetsystems.com

aperezcrespo wrote on Tuesday, December 25, 2007:

Hi folks
  Rod is correct there is nothing in OEMR that is processor dependent.  But the differences between the 64 and 32 bit versions of the OS are wheather or not a particular RPM or app module has been compiled for 64 bit.  You will need to find which is the missing or uncompiled mod or rpm.  Once identified you may need to download the source and compile it for 64.  I had tried this quite sometime ago and found that it was simply too much work to be of value (at that time the only 64 bit machine was my own test box).  The problem back then was apache itself and version 9 of Suse.  I also agree with Rod as far as PHP config.
In OpenSuSe 10.x I have had to set these items in the /etc/php.ini
include_path = ".:/usr/share/php"
and
short_open_tag = On

Alfonso

mike-h30 wrote on Tuesday, December 25, 2007:

Hi Alfonso,

I installed MySQL5, PHP5, and Apache2 a few days ago during my second setup of SUSE Linux Enterprise Server 10 SP1.  I did not have these components installed at the time of my initial setup. I never thought I would need a web server, or MySQL as my current EMR is a MS Access application.  I soon realized a PHP-MySQL web based application was the way to go - for numerous reasons:)  I spent three or four frustrating days trying to add MySQL5, PHP5, and Apache2 from package repositories. I was doing all of this in YAST2.  I had tons of unresolved dependencies (I must have messed up some config files from troubleshooting past issues). Exhausted, I decided to redo my system from scratch (this was a last resort) and add the components during the SLES10-SP1 setup.  Wow! PHP5, MySQL5, and Apache2 worked right out of the gate from that point!  This was all done on my 64 bit box.  So after spending about a week trying to install the web server components and then re-installing the OS (it was worth it after seeing all the capabilities of OpenEMR-2.8.3), I did not want to mess up my production box again and decided to create a development environment on my laptop.  That is when I noticed the calendar issue that I am currently troubleshooting.

-Mike

mike-h30 wrote on Wednesday, December 26, 2007:

Hi Rod,

Below are some of the error messages from the /var/log file you referred me to.  I am not sure why these occurred on the 64 bit machine as I followed the set up instructions exactly as I did for the 32 bit machine.  Can you advise what I need to do next?

Thanks.

-Mike

[Tue Dec 25 19:13:46 2007] [error] [client xxx.xxx.x.xx] PHP Notice:  Undefined index:  pc_username in /srv/www/htdocs/openemr-2.8.3/interface/main/calendar/index.php on line 41, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main_info.php

[Tue Dec 25 19:13:46 2007] [error] [client xxx.xxx.x.xx] PHP Warning:  Call-time pass-by-reference has been deprecated - argument passed by value;  If you would like to pass it by reference, modify the declaration of [runtime function name]().  If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file.  However, future versions may not support this any longer.  in /srv/www/htdocs/openemr-2.8.3/interface/main/calendar/modules/PostCalendar/pnuserapi.php on line 1359, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main_info.php

[Tue Dec 25 19:13:46 2007] [error] [client xxx.xxx.x.xx] PHP Warning:  Call-time pass-by-reference has been deprecated - argument passed by value;  If you would like to pass it by reference, modify the declaration of [runtime function name]().  If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file.  However, future versions may not support this any longer.  in /srv/www/htdocs/openemr-2.8.3/interface/main/calendar/modules/PostCalendar/pnuserapi.php on line 1280, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main_info.php
[Tue Dec 25 19:13:46 2007] [error] [client xxx.xxx.x.xx] PHP Warning:  Call-time pass-by-reference has been deprecated - argument passed by value;  If you would like to pass it by reference, modify the declaration of [runtime function name]().  If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file.  However, future versions may not support this any longer.  in /srv/www/htdocs/openemr-2.8.3/interface/main/calendar/modules/PostCalendar/pnuserapi.php on line 1312, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main_info.php

[Tue Dec 25 19:13:46 2007] [error] [client xxx.xxx.x.xx] PHP Fatal error:  Allowed memory size of 8388608 bytes exhausted (tried to allocate 92160 bytes) in /srv/www/htdocs/openemr-2.8.3/interface/main/calendar/modules/PostCalendar/pnincludes/Smarty/Smarty_Compiler.class.php on line 690, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main_info.php

[Tue Dec 25 19:13:34 2007] [error] [client xxx.xxx.x.xx] PHP Notice:  Undefined variable: ignoreAuth in /srv/www/htdocs/openemr-2.8.3/interface/globals.php on line 186, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/login/login.php

[Tue Dec 25 19:13:45 2007] [error] [client xxx.xxx.x.xx] PHP Notice:  Undefined index:  mode in /srv/www/htdocs/openemr-2.8.3/interface/main/main_screen.php on line 15, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/login/login.php

[Tue Dec 25 19:13:45 2007] [error] [client xxx.xxx.x.xx] PHP Notice:  Undefined variable: ignoreAuth in /srv/www/htdocs/openemr-2.8.3/interface/globals.php on line 186, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main.php?mode=

[Tue Dec 25 19:13:45 2007] [error] [client xxx.xxx.x.xx] PHP Notice:  Undefined variable: ignoreAuth in /srv/www/htdocs/openemr-2.8.3/interface/globals.php on line 186, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main_screen.php?auth=login

[Tue Dec 25 19:13:45 2007] [error] [client xxx.xxx.x.xx] PHP Notice:  Undefined index:  scanner_output_directory in /srv/www/htdocs/openemr-2.8.3/interface/main/main_navigation.php on line 87, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main_screen.php?auth=login

[Tue Dec 25 19:13:45 2007] [error] [client xxx.xxx.x.xx] PHP Notice:  Undefined variable: ignoreAuth in /srv/www/htdocs/openemr-2.8.3/interface/globals.php on line 186, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main.php?mode=

[Tue Dec 25 19:13:45 2007] [error] [client xxx.xxx.x.xx] PHP Warning:  Call-time pass-by-reference has been deprecated - argument passed by value;  If you would like to pass it by reference, modify the declaration of [runtime function name]().  If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file.  However, future versions may not support this any longer.  in /srv/www/htdocs/openemr-2.8.3/library/freeb/xmlrpcs.inc on line 498, referer: http://xxx.xxx.x.xx/openemr-2.8.3/interface/main/main.php?mode=

sunsetsystems wrote on Wednesday, December 26, 2007:

The message that matters here is "Allowed memory size of 8388608 bytes exhausted".  You need to increase the memory_limit value in php.ini.  The other errors are non-fatal.

This makes sense, as it’s common for 64-bit applications to consume more memory than the corresponding 32-bit apps.

Rod
www.sunsetsystems.com

mike-h30 wrote on Wednesday, December 26, 2007:

That is interesting.  I would have never guessed that.  So now I have a few questions.

1. What limit would you recommend?  I have no clue as to what to set this value to - especially since I am very new to PHP.

2. How will this impact me going into production?
    a. Will size of database contents(text, PDF’s, images) be impacted?
    b. Will number of concurrent users impact this?
   
Thanks Rod!

-Mike

mike-h30 wrote on Wednesday, December 26, 2007:

Rod,

I have it working now!  I set the memory_limit value to "64M".  I found some PHP help topics on that memory limit error.  Thanks again for all of your input. I am looking forward to implementing openEMR.

-Mike