© 2015 X2Engine Inc.

Difference between revisions of "Known Issues"

From X2Engine
Jump to: navigation, search
 
(5 intermediate revisions by 2 users not shown)
Line 8: Line 8:
 
! scope="col" | Affected Instances
 
! scope="col" | Affected Instances
 
! scope="col" | How to Fix
 
! scope="col" | How to Fix
 +
|-
 +
! 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
 
! scope="row" | Primary administrator user has lost permissions
 
| After updating to 4.0.1, having a username that isn't "admin"
 
| 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 your administrator's username''':
+
| Run the following database command (SQL) on X2Engine's database, '''REPLACING <tt>{user}</tt> WITH THE ADMINISTRATOR'S USERNAME''':
 
<syntaxhighlight lang="sql">
 
<syntaxhighlight lang="sql">
 
UPDATE `x2_auth_item` SET `bizrule`='return Yii::app()->user->name === "{user}";' WHERE `name`='admin';
 
UPDATE `x2_auth_item` SET `bizrule`='return Yii::app()->user->name === "{user}";' WHERE `name`='admin';
 
DELETE FROM `x2_auth_cache` WHERE 1;
 
DELETE FROM `x2_auth_cache` WHERE 1;
 
</syntaxhighlight>
 
</syntaxhighlight>
Once administrative access has been restored, update to 4.0.2 or later.
+
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
 
! scope="row" | "failed to copy from tmp" error message on update page
Line 91: Line 101:
 
|-
 
|-
 
|}
 
|}
 
= Running Updates Manually =
 
'''This section is obsolete as of 12/10/2013.''' Refer to [[Software Updates and Upgrades|the Updating guide]].
 
 
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, because of update notifications disabled or an improperly set unique_id in the x2_admin table. 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.
 
 
<strong>Note:</strong> in versions 2.2 and later, it is possible to go directly to the updater through a link in the admin console under the "System Settings" section.
 

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)