Project

General

Profile

Actions

Analysis #6494

open

error ivm tracker

Added by Nathalie Blocry about 10 years ago. Updated about 10 years ago.

Status:
Needs testing
Priority:
Normal
Assignee:
Sven Vanpoucke
Target version:
Start date:
25/07/2013
Due date:
% Done:

0%

Estimated time:

Description

na het inloggen (als admin) krijg ik regelmatig de volgende error:

( ! ) Fatal error: Call to a member function size() on a non-object in /var/www/chamilo-dev/tracking/php/lib/aggregate_tracker.class.php on line 30
Call Stack
  1. Time Memory Function Location
    1 0.2132 677512 {main}( ) ../index.php:0
    2 0.3144 13312952 common\libraries\Application::launch( ?, ? ) ../index.php:87
    3 0.3178 13886624 user\UserManagerLoginComponent->run( ) ../application.class.php:777
    4 0.3258 14093168 tracking\Event::trigger( ?, ?, ? ) ../login.class.php:34
    5 0.3591 18843896 tracking\Event->run( ?
    ) ../event.class.php:182
    6 0.3975 20240480 tracking\AggregateTracker->run( ??? ) ../event.class.php:208

het is niet altijd en heb nog niet echt kunnen ontdekken onder welke voorwaarden wel en niet

Actions #1

Updated by Sven Vanpoucke about 10 years ago

I have never seen this bug in clean installations. Do you have optional applications installed with trackers included?

Actions #2

Updated by Sven Vanpoucke about 10 years ago

  • Assignee set to Sven Vanpoucke

I seem to have this problem with the latest code now. I'll try to figure out what's wrong.

Actions #3

Updated by Sven Vanpoucke about 10 years ago

  • Status changed from New to Needs testing

Apparently there was an SQL error due to a wrong table name. This should be fixed in:
https://bitbucket.org/chamilo/chamilo-user-dev/changeset/113de72f47b7

Actions #4

Updated by Sven Vanpoucke about 10 years ago

I seem to be having the same issue now with a migrated platform.

Reason: The name of the tracking tables are created incorrectly (without the user prefix).
This has to be fixed by removing the "user_" prefix from the dataclasses and entering them as prefix in the datamanager.

Actions #5

Updated by Sven Vanpoucke about 10 years ago

I found the correct problem:
There has been a creation of new packages for the integration with other packages. This means that these integration packages now have their own datamanager. Some (updated or new) functionalities work with the new datamanager. However when using the tracking integration the system also uses the tracking data manager. The tracking data manager determines the table name depending on the class name, and not on the prefix of the datamanager of the package.

Solution:
  • The get_table_name of all the dataclasses should be adapted to return the table_name with the user_ prefix (for usage in the original tracking data manager)
  • The prefix of the datamanager should be tracking_ without the user_ prefix. (Otherwise there would be a conflict with the above providing double user prefixes)
  • The tracker xml files should be changed to include the user_ prefix because the creation of the datastructures is done through the datamanager of the integration package (which has only the tracking_ prefix)

Fixed this in
https://bitbucket.org/chamilo/chamilo-user-dev/changeset/a8444cf74974

Actions

Also available in: Atom PDF