Details

      Description

      Hi,

      this is a follow up of EZP-23870
      https://github.com/ezsystems/ezpublish-legacy/pull/1133

      If two processes were started at the same time and if they read the same expiry.php, the process which will be ended last will overwrite the changes of the earlier process.

      Example:
      User A is updating the user cache
      User B is moving a tree

      Both processes read the same expiry.

      Process A writes the user-info-cache key
      Process B writes the view cache key and the template block key

      Process B is reverting the changes of Process A because the expiry.php isn't reloaded before it's written.

      Suggestion:
      a) Reload the expiry.php before it's written
      b) Only update the changed keys and only update the keys if they are older than the current one.

      The first solution will be only reloading the expiry.php before it's written.

      The longtime solution should be: Doing a "expiry.php" queue like the async. So, every update request should be written in a db table and a daemon is updating the expiry.php every x seconds - if there are changes.

      Best wishes,
      Georg.

        Issue Links

          Activity

          Georg Franz created issue -
          Yannick Roger (Inactive) made changes -
          Field Original Value New Value
          Link This issue relates to EZP-23870 [ EZP-23870 ]
          Joao Inacio (Inactive) made changes -
          Fix Version/s Customer request [ 11018 ]
          Joao Inacio (Inactive) made changes -
          Status Open [ 1 ] Confirmed [ 10037 ]
          Paulo Lopes (Inactive) made changes -
          Status Confirmed [ 10037 ] InputQ [ 10001 ]
          Yannick Roger (Inactive) made changes -
          Description Hi,

          this is a follow up of

          https://jira.ez.no/browse/EZP-23870
          https://github.com/ezsystems/ezpublish-legacy/pull/1133

          If two processes were started at the same time and if they read the same expiry.php, the process which will be ended last will overwrite the changes of the earlier process.

          Example:
          User A is updating the user cache
          User B is moving a tree

          Both processes read the same expiry.

          Process A writes the user-info-cache key
          Process B writes the view cache key and the template block key

          Process B is reverting the changes of Process A because the expiry.php isn't reloaded before it's written.

          Suggestion:
          a) Reload the expiry.php before it's written
          b) Only update the changed keys and only update the keys if they are older than the current one.

          The first solution will be only reloading the expiry.php before it's written.

          The longtime solution should be: Doing a "expiry.php" queue like the async. So, every update request should be written in a db table and a daemon is updating the expiry.php every x seconds - if there are changes.

          Best wishes,
          Georg.
          Hi,

          this is a follow up of EZP-23870
          https://github.com/ezsystems/ezpublish-legacy/pull/1133

          If two processes were started at the same time and if they read the same expiry.php, the process which will be ended last will overwrite the changes of the earlier process.

          Example:
          User A is updating the user cache
          User B is moving a tree

          Both processes read the same expiry.

          Process A writes the user-info-cache key
          Process B writes the view cache key and the template block key

          Process B is reverting the changes of Process A because the expiry.php isn't reloaded before it's written.

          Suggestion:
          a) Reload the expiry.php before it's written
          b) Only update the changed keys and only update the keys if they are older than the current one.

          The first solution will be only reloading the expiry.php before it's written.

          The longtime solution should be: Doing a "expiry.php" queue like the async. So, every update request should be written in a db table and a daemon is updating the expiry.php every x seconds - if there are changes.

          Best wishes,
          Georg.
          Gunnstein Lye made changes -
          Assignee Gunnstein Lye [ gunnstein.lye@ez.no ]
          Gunnstein Lye made changes -
          Status InputQ [ 10001 ] Development [ 3 ]
          Gunnstein Lye made changes -
          Remaining Estimate 0 minutes [ 0 ]
          Time Spent 1 hour [ 3600 ]
          Worklog Id 52680 [ 52680 ]
          Gunnstein Lye logged work - 19/Jan/15 5:10 PM
          • Time Spent:
            1 hour
             

            .

          Gunnstein Lye logged work - 20/Jan/15 10:00 AM
          • Time Spent:
            5 hours
             

            .

          Gunnstein Lye made changes -
          Status Development [ 3 ] Development review [ 10006 ]
          Show
          Gunnstein Lye added a comment - PR: https://github.com/ezsystems/ezpublish-legacy/pull/1139
          Gunnstein Lye made changes -
          Time Spent 1 hour [ 3600 ] 6 hours [ 21600 ]
          Worklog Id 52684 [ 52684 ]
          Gunnstein Lye logged work - 26/Jan/15 9:00 AM
          • Time Spent:
            30 minutes
             
            <No comment>
          Gunnstein Lye made changes -
          Status Development review [ 10006 ] Development Review done [ 10028 ]
          Show
          Gunnstein Lye added a comment - Fixed in master: https://github.com/ezsystems/ezpublish-legacy/commit/aca99a1fb1a3e32f2a2aa9586f118dada895398b
          Gunnstein Lye made changes -
          Affects Version/s 5.2 [ 12582 ]
          Affects Version/s 5.1 [ 11280 ]
          Gunnstein Lye made changes -
          Fix Version/s 5.1 Maintenance [ 12301 ]
          Fix Version/s 5.2 Maintenance [ 12782 ]
          Fix Version/s 5.3.5 [ 13889 ]
          Fix Version/s 5.4.2 [ 13979 ]
          Gunnstein Lye made changes -
          Time Spent 6 hours [ 21600 ] 6 hours, 30 minutes [ 23400 ]
          Worklog Id 52716 [ 52716 ]
          Gunnstein Lye made changes -
          Status Development Review done [ 10028 ] Documentation done [ 10011 ]
          Gunnstein Lye made changes -
          Affects Version/s 2015.01 [ 13680 ]
          Paulo Nunes (Inactive) made changes -
          Status Documentation done [ 10011 ] QA [ 10008 ]
          Assignee Gunnstein Lye [ gunnstein.lye@ez.no ] Paulo Nunes [ paulo.nunes@ez.no ]
          Hide
          Paulo Nunes (Inactive) added a comment -

          QA Approved
          eZ Publish 5.1, 5.2, 5.3, 5.4 and master

          Show
          Paulo Nunes (Inactive) added a comment - QA Approved eZ Publish 5.1, 5.2, 5.3, 5.4 and master
          Paulo Nunes (Inactive) made changes -
          Assignee Paulo Nunes [ paulo.nunes@ez.no ]
          Status QA [ 10008 ] Closed [ 6 ]
          Resolution Fixed [ 1 ]
          Paulo Nunes (Inactive) made changes -
          Resolution Fixed [ 1 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          Paulo Nunes (Inactive) made changes -
          Status Reopened [ 4 ] Closed [ 6 ]
          Resolution Fixed [ 1 ]
          André Rømcke made changes -
          Workflow eZ Engineering Scrumban Workflow [ 65791 ] EZ* Development Workflow [ 85666 ]
          Alex Schuster made changes -
          Workflow EZ* Development Workflow [ 85666 ] EZEE Development Workflow [ 124537 ]
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Confirmed Confirmed
          2d 20h 39m 1 joao.inacio@ez.no 19/Jan/15 12:04 PM
          Confirmed Confirmed InputQ InputQ
          40m 28s 1 Paulo Lopes (Inactive) 19/Jan/15 12:45 PM
          InputQ InputQ Development Development
          4h 23m 1 Gunnstein Lye 19/Jan/15 5:08 PM
          Development Development Development Review Development Review
          20h 46m 1 Gunnstein Lye 20/Jan/15 1:55 PM
          Development Review Development Review Development Review done Development Review done
          5d 21h 38m 1 Gunnstein Lye 26/Jan/15 11:34 AM
          Development Review done Development Review done Documentation Review done Documentation Review done
          21m 56s 1 Gunnstein Lye 26/Jan/15 11:56 AM
          Documentation Review done Documentation Review done QA QA
          1d 5h 12m 1 Paulo Nunes 27/Jan/15 5:08 PM
          QA QA Closed Closed
          5d 20h 3m 1 Paulo Nunes 02/Feb/15 1:12 PM
          Closed Closed Reopened Reopened
          63d 2h 44m 1 Paulo Nunes 06/Apr/15 4:56 PM
          Reopened Reopened Closed Closed
          16s 1 Paulo Nunes 06/Apr/15 4:56 PM

            People

            • Assignee:
              Unassigned
              Reporter:
              Georg Franz
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 6 hours, 30 minutes
                6h 30m