Visitor Generator generates Future Visits #1369

robocoder opened this Issue May 21, 2010 · 3 comments

3 participants


At 23:55 PM EDT on May 20th, I ran misc/generateVisits.php. Looking in piwik_log_visit, the visits were generated for May 21st and May 22nd.

(daysToCompute is 1)

Piwik Open Source Analytics member


Piwik Open Source Analytics member

To override default behaviors of a visit a subclass of /core/Tracker/Visit.php has been created : /core/Tracker/Generator/Visit.php.

This extension allows a fake generated timestamp to be assigned to a visit. In order to do so, an overridden method has been created in /core/Tracker/Generator/Visit.php : 33

    protected function getCurrentTimestamp()
        self::$timestampToUse = max(@$this->visitorInfo['visit_last_action_time'],self::$timestampToUse);
        self::$timestampToUse += mt_rand(4,1840);
        return self::$timestampToUse;

In /core/Tracker/Visit.php : 226, 254, 290, 356, 427, 572, 773 and 804, the method getCurrentTimestamp() is called.

The method getCurrentTimestamp() of class /core/Tracker/Visit.php is supposed to be an accessor method and not a computational one. Each call of the overridden method getCurrentTimestamp() of class /core/Tracker/Generator/Visit.php computes a new timestamp instead of reusing the first generated one. Because of those unnecessary increments, the time goes too much ahead.

Proposal: Remove the time increment from getCurrentTimestamp() and add a generateTimestamp() method. I have attached a patch to solve this issue. I have decided to access this method from /core/Tracker/Generator/Tracker.php after the creation of the visit. It could be done in the constructor of /core/Tracker/Generator/Visit.php.

Piwik Open Source Analytics member

(In [2211]) Fixes #1369 Thanks JulienM!

@robocoder robocoder added this to the Piwik 0.6.2 milestone Jul 8, 2014
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment