PASS Migration Upgrade - PHP Phase III, Version 1 - Effective Friday, July 4, 2008
See also: http://its.psu.edu/alerts/alert-740
- DCE/DFS authentication/authorization/storage systems replaced by Kerberos/LDAP/GPFS (see New PASS Documentation)
- Platform change: Sun Solaris to Redhat Linux
- Source compiled to (mostly) vendor distribution binary Redhat Package Manager (RPM) packaged components
- Backend IP addresses changed: still within PHP backend subnet (see PHP Firewall/Database Permissions Info).
- Registered PHP streams: compress.bzip2
- Registered stream filters: bzip2.*
- GD FreeType (version 2.2.1)
- Experimental XML RPC extension activated
Deprecated, Soon To Be Removed Features
Newly Resolved Problems
Previously Resolved Problems
is_readable() / is_writable() support for PASS ACLs - In
previous versions of PHP 5.x, is_writable()
both gave answers without regard to POSIX ACLs, which in our case of
PASS, didn't accurately reflect the PASS (DCE/DFS) file ACL
permissions. PHP applications such as Joomla! and Drupal had problems during installation
as the is_readable() and is_writable() PHP functions falsely reported
files/folders could not be used as required by the installation
script. -- This
PHP Bug #34957 was
fixed in PHP version
5.1.0, thus included in Penn State Application Engines Phase II,
Build 4. This also appears to not be a problem with GPFS / NFSv4 ACLs
either in Phase III, Version 1.
Empty query string crash PDO 'sqlite2' objects - The 'sqlite2' PDO driver causes a segmentation fault (server process crash, which appears as a blank page / reset connection in a browser) when the ->query method operates on a blank (null + any number of whitespace) string. -- A patch has been applied, submitted to the PHP community and committed to the PHP bundled sqlite2 driver since PHP version 5.2.0.
PHP readdir() function / POSIX readdir_r() stack
corruption - There was a known problem where the readdir() function
would cause a server process to crash under the right conditions; this
may have caused Web browsers to display error messages such as, "Document
contains no data," or, "Page cannot be displayed." -- This problem was
Solaris DFS client specific so no longer present.
sqlite_open() / new PDO('sqlite') / new PDO('sqlite2') fail
to open a relative database filename with an unreadable ancestor
folder - There was a condition when sqlite_open() would fail to open
a database file when referred to via a relative path name.
This occured when a subsequent getcwd() call fails, which it
would when an ancestor folder was not readable by the Web server. This
is common for PHP scripts run from Penn State Personal Web space. This
was fixed in Phase II, Build 3 by a
custom patch, which also fixed another bug that caused server crashes,
as documented at http://www.sqlite.org/cvstrac/tktview?tn=1274.
The second bug that caused server crashes has been fixed in SQLite Code
Checkin #2491 / SQLite
3.2.2 / SQLite 2.8.17
/ PHP 5.1.2. --
Linux getcwd() uses kernel stored full path so does not cause the same
failure. This bug is no longer present.