© 2015 X2Engine Inc.

Difference between revisions of "Known Issues"

From X2Engine
Jump to: navigation, search
 
(76 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Support]]
 
[[Category:Support]]
This page is a work in progress. As new common/recurring issues are encountered, they will be addressed here.
 
  
= Troubleshooting =
+
The following is a list of problems that both arise under very specific circumstances and cannot be fixed by updating to the latest version (due to how they either prevent updating or cause fatal errors, or because updates cannot fix the issue).
  
 
{|class="wikitable" align="left"
 
{|class="wikitable" align="left"
 
|-
 
|-
 
! scope="col" | Description
 
! scope="col" | Description
! scope="col" | Affected Versions
+
! scope="col" | Affected Instances
 
! scope="col" | How to Fix
 
! scope="col" | How to Fix
 
|-
 
|-
! scope="row" | Update notifications do not work
+
! scope="row" | Failed to update with "ResponseUtil.php: No such file or directory" before 3.7.5
 +
| Instances between versions 3.0.1 and 3.7.5
 +
| Modify protected/components/UpdaterBehavior.php, and add the value "components/util/ResponseUtil.php" to the array $updaterFiles and proceed to update:
 +
<syntaxhighlight lang="php">
 +
public $updaterFiles = array(
 +
    // ...
 +
    "components/util/ResponseUtil.php",
 +
);
 +
</syntaxhighlight>
 +
|-
 +
! scope="row" | Primary administrator user has lost permissions
 +
| After updating to 4.0.1, having a username that isn't "admin"
 +
| Run the following database command (SQL) on X2Engine's database, '''REPLACING <tt>{user}</tt> WITH THE ADMINISTRATOR'S USERNAME''':
 +
<syntaxhighlight lang="sql">
 +
UPDATE `x2_auth_item` SET `bizrule`='return Yii::app()->user->name === "{user}";' WHERE `name`='admin';
 +
DELETE FROM `x2_auth_cache` WHERE 1;
 +
</syntaxhighlight>
 +
Once administrative access has been restored, update to 4.0.2 or later. ''Alternatively, you can use the [[Software_Updates_and_Upgrades#Using_the_Command_Line_Updater|command line update method]].''
 +
|-
 +
! scope="row" | "failed to copy from tmp" error message on update page
 +
| Versions 3.5.5, and in some cases, from 3.5.6 to 3.7.5
 +
| There was a bug in 3.5.5 caused this particular error, but it was later fixed. If you are on 3.5.5, you can fix this by [[Software_Updates_and_Upgrades#Refreshing_and_Updating_the_Updater_Utility|updating the updater utility to the latest version.]] In all other versions, the only two legitimate causes of this error that could be found were:
 +
* The list of updater dependency files to download is actually empty (this should almost never happen when the updater utility refreshes)
 +
* (In X2Engine Professional Edition): the installation's number of users exceeds the amount of users for which the license is authorized. This causes the server to return something other than the list of file digests, and the updater interprets it as being empty.
 +
In both of these cases, the "tmp" folder simply does not get created due to the file list being empty (which was problematic). In the case that you are using X2Engine Open Source Edition, or the number of users does not exceed the number that your license is authorized for, you can attempt to circumvent this by creating the folder manually. In both cases, you can get past this issue if you have access to the CRM's files.
 +
|-
 +
! scope="row" | Cannot update, and requirements check script passes
 +
| Installed at or updated to version 3.5.5
 +
| [[Software_Updates_and_Upgrades#Refreshing_and_Updating_the_Updater_Utility|Update the updater utility to the latest version.]]
 +
|-
 +
! scope="row" | Prompt to update doesn't go away after updating
 +
| X2Engine versions before 2.1 (check for the version number being the same as before the update)
 +
| '''After updating,''' edit the file <tt>protected/config/X2Config.php</tt>. For the <tt>$version</tt> variable, put the current version between the pair of single quotes. For example, for version x.y.z, it should look like this: <syntaxhighlight lang="php">$version = 'x.y.z';</syntaxhighlight>
 +
|-
 +
! scope="row" | Cannot log in after update
 +
| X2Engine versions before 2.0, after updating to a version after 2.0
 +
| Empty the x2_sessions table (delete all records)
 +
<syntaxhighlight lang="sql">
 +
DELETE FROM `x2_sessions`;
 +
</syntaxhighlight>
 +
|-
 +
! scope="row" | Invalid path in "protected/runtime/..."
 
|
 
|
* Installed at 1.6.1 or earlier and updated to a version in the range 1.6.5 - 2.0
+
* PHP built without <tt>posix</tt> library
* Installed on any server where the PHP option allow_url_fopen is disabled
+
* Windows-based servers
 +
|
 +
This is caused by installing with a directory ownership mismatch that wasn't caught and reported in the requirements check. In some PHP builds, the necessary POSIX functions for running this check are unavailable due to one of the following reasons:
 +
* The <tt>--disable-posix</tt> flag is enabled and the POSIX library hasn't been separately installed
 +
* The server's operating system is Windows
 +
To see if this is the case, upload [[requirements:|requirements.php]] to your server again and search for "posix" in the <tt>phpinfo()</tt> output.
 +
|-
 +
! scope="row" | Installation error: deprecated function "mysql_escape_string"
 +
|
 +
All versions up to 2.2.1 on some servers
 +
|
 +
'''Install a newer version of X2Engine''' (recommended) or replace all instances of "mysql_escape_string" with "addslashes" in initialize.php, or simply remove those function calls. Note that if you perform the latter action, you must ensure that the values you put in the "Application Name" and "Administrator Email" fields of the installation form do not contain any apostrophes (otherwise, the resulting installation will be broken).
 +
|-
 +
! scope="row" | "No input file specified"
 +
|
 +
All versions, on GoDaddy hosting
 +
|
 +
All web applications featuring human-friendly URLs (i.e. Joomla!, Drupal, Wordpress) will have this issue on GoDaddy. The error is caused by the URL rewriting engine being disabled in GoDaddy's hosting environment. See the following articles on how to rectify the issue using <tt>.htaccess</tt> overrides:
 +
* [http://www.magentocommerce.com/wiki/groups/227/error/no_input_file_specified Magento: "No Input File Specified"]
 +
* [http://support.godaddy.com/help/article/6656/enabling-joomla-search-engine-friendly-urls GoDaddy &mdash; Enabling Joomla! Search Engine Friendly URLs]
 +
|-
 +
! scope="row" | Update notifications do not work, cannot enable them
 +
|
 +
Installed at 1.6.1 or earlier and updated to a version in the range 1.6.5 - 2.0
 
|
 
|
* Enable fopen_allow_url in the hosting environment (updates themselves won't work without this option; it's the crux of the remote update process)
 
 
* Set value of the column <tt>unique_id</tt> in table <tt>x2_admin</tt> to "none", i.e. <syntaxhighlight lang="sql">UPDATE `x2_admin` SET `unique_id`='none'</syntaxhighlight> Then, go to "Updater Settings" ("General Settings" in versions earlier than 2.0), ensure "Enable Software Update Notifications" is checked, and submit the form.
 
* Set value of the column <tt>unique_id</tt> in table <tt>x2_admin</tt> to "none", i.e. <syntaxhighlight lang="sql">UPDATE `x2_admin` SET `unique_id`='none'</syntaxhighlight> Then, go to "Updater Settings" ("General Settings" in versions earlier than 2.0), ensure "Enable Software Update Notifications" is checked, and submit the form.
* Run the update manually
+
* Run the update manually if all else fails
 
|-
 
|-
 
! scope="row" | Cannot view or create quotes
 
! scope="row" | Cannot view or create quotes
 
|
 
|
* Installed at 1.6.1 or earlier and updated to a version in the range 1.6.5 - 1.6.6
+
Installed at 1.6.1 or earlier and updated to a version in the range 1.6.5 - 1.6.6
 
|
 
|
 
Run the following SQL:
 
Run the following SQL:
Line 37: Line 99:
 
         ("Quote", "existingProducts", "Existing Products", 0,  0, "varchar", 0,  0,  NULL,  0, "", 1)
 
         ("Quote", "existingProducts", "Existing Products", 0,  0, "varchar", 0,  0,  NULL,  0, "", 1)
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
|-
 
|}
 
|}
 
= Running Updates Manually =
 
In some cases, it may be desirable to bypass the update notifications and go straight to the updater to check if there is a new version available. To run an update or check for an update manually, log in as the admin user and in the browser's address bar, replace "index.php/site/whatsNew" with "index.php/admin/updater", and hit enter to run the action.
 

Latest revision as of 01:30, 5 December 2014


The following is a list of problems that both arise under very specific circumstances and cannot be fixed by updating to the latest version (due to how they either prevent updating or cause fatal errors, or because updates cannot fix the issue).

Description Affected Instances How to Fix
Failed to update with "ResponseUtil.php: No such file or directory" before 3.7.5 Instances between versions 3.0.1 and 3.7.5 Modify protected/components/UpdaterBehavior.php, and add the value "components/util/ResponseUtil.php" to the array $updaterFiles and proceed to update:
public $updaterFiles = array(
    // ...
    "components/util/ResponseUtil.php",
);
Primary administrator user has lost permissions After updating to 4.0.1, having a username that isn't "admin" Run the following database command (SQL) on X2Engine's database, REPLACING {user} WITH THE ADMINISTRATOR'S USERNAME:
UPDATE `x2_auth_item` SET `bizrule`='return Yii::app()->user->name === "{user}";' WHERE `name`='admin';
DELETE FROM `x2_auth_cache` WHERE 1;

Once administrative access has been restored, update to 4.0.2 or later. Alternatively, you can use the command line update method.

"failed to copy from tmp" error message on update page Versions 3.5.5, and in some cases, from 3.5.6 to 3.7.5 There was a bug in 3.5.5 caused this particular error, but it was later fixed. If you are on 3.5.5, you can fix this by updating the updater utility to the latest version. In all other versions, the only two legitimate causes of this error that could be found were:
  • The list of updater dependency files to download is actually empty (this should almost never happen when the updater utility refreshes)
  • (In X2Engine Professional Edition): the installation's number of users exceeds the amount of users for which the license is authorized. This causes the server to return something other than the list of file digests, and the updater interprets it as being empty.

In both of these cases, the "tmp" folder simply does not get created due to the file list being empty (which was problematic). In the case that you are using X2Engine Open Source Edition, or the number of users does not exceed the number that your license is authorized for, you can attempt to circumvent this by creating the folder manually. In both cases, you can get past this issue if you have access to the CRM's files.

Cannot update, and requirements check script passes Installed at or updated to version 3.5.5 Update the updater utility to the latest version.
Prompt to update doesn't go away after updating X2Engine versions before 2.1 (check for the version number being the same as before the update) After updating, edit the file protected/config/X2Config.php. For the $version variable, put the current version between the pair of single quotes. For example, for version x.y.z, it should look like this:
$version = 'x.y.z';
Cannot log in after update X2Engine versions before 2.0, after updating to a version after 2.0 Empty the x2_sessions table (delete all records)
DELETE FROM `x2_sessions`;
Invalid path in "protected/runtime/..."
  • PHP built without posix library
  • Windows-based servers

This is caused by installing with a directory ownership mismatch that wasn't caught and reported in the requirements check. In some PHP builds, the necessary POSIX functions for running this check are unavailable due to one of the following reasons:

  • The --disable-posix flag is enabled and the POSIX library hasn't been separately installed
  • The server's operating system is Windows

To see if this is the case, upload requirements.php to your server again and search for "posix" in the phpinfo() output.

Installation error: deprecated function "mysql_escape_string"

All versions up to 2.2.1 on some servers

Install a newer version of X2Engine (recommended) or replace all instances of "mysql_escape_string" with "addslashes" in initialize.php, or simply remove those function calls. Note that if you perform the latter action, you must ensure that the values you put in the "Application Name" and "Administrator Email" fields of the installation form do not contain any apostrophes (otherwise, the resulting installation will be broken).

"No input file specified"

All versions, on GoDaddy hosting

All web applications featuring human-friendly URLs (i.e. Joomla!, Drupal, Wordpress) will have this issue on GoDaddy. The error is caused by the URL rewriting engine being disabled in GoDaddy's hosting environment. See the following articles on how to rectify the issue using .htaccess overrides:

Update notifications do not work, cannot enable them

Installed at 1.6.1 or earlier and updated to a version in the range 1.6.5 - 2.0

  • Set value of the column unique_id in table x2_admin to "none", i.e.
    UPDATE `x2_admin` SET `unique_id`='none'
    
    Then, go to "Updater Settings" ("General Settings" in versions earlier than 2.0), ensure "Enable Software Update Notifications" is checked, and submit the form.
  • Run the update manually if all else fails
Cannot view or create quotes

Installed at 1.6.1 or earlier and updated to a version in the range 1.6.5 - 1.6.6

Run the following SQL:

Versions earlier than 2.0:

INSERT INTO x2_fields (modelName, fieldName,  attributeLabel,  modified, custom, type,  required, readOnly, linkType, searchable, relevance) 
 VALUES ("Quote", "products",  "Products",  0,  0, "varchar", 0,  0,  NULL,  0, ""), 
        ("Quote", "existingProducts", "Existing Products", 0,  0, "varchar", 0,  0,  NULL,  0, "")

Versions 2.0 and later:

INSERT INTO x2_fields (modelName, fieldName,  attributeLabel,  modified, custom, type,  required, readOnly, linkType, searchable, relevance,isVirtual) 
 VALUES ("Quote", "products",  "Products",  0,  0, "varchar", 0,  0,  NULL,  0, "", 1),
        ("Quote", "existingProducts", "Existing Products", 0,  0, "varchar", 0,  0,  NULL,  0, "", 1)