Uploaded image for project: 'Couchbase Documentation'
  1. Couchbase Documentation
  2. DOC-7067

Timers cannot be reliably cancelled or nested prior to 6.6.0

    XMLWordPrintable

Details

    • 1

    Description

      We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:

      Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.

      In 6.6.0, we need to advertise the following in both release notes and documentation:

      Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            siri Sriram Melkote (Inactive) created issue -
            siri Sriram Melkote (Inactive) made changes -
            Field Original Value New Value
            Description We need to document the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:

            Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.
            We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:

            Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.
            siri Sriram Melkote (Inactive) made changes -
            Description We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:

            Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.
            We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:
            ??Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.??

            In 6.6, we need to advertise the following in both release notes and documentation:
            ??Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.
            ??
            siri Sriram Melkote (Inactive) made changes -
            Description We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:
            ??Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.??

            In 6.6, we need to advertise the following in both release notes and documentation:
            ??Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.
            ??
            We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:
            {{Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.}}

            In 6.6, we need to advertise the following in both release notes and documentation:
            {{Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.}}
            siri Sriram Melkote (Inactive) made changes -
            Fix Version/s 6.6.0 [ 16812 ]
            siri Sriram Melkote (Inactive) made changes -
            Description We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:
            {{Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.}}

            In 6.6, we need to advertise the following in both release notes and documentation:
            {{Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.}}
            We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:
            {{Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.}}

            In 6.6.0, we need to advertise the following in both release notes and documentation:
            {{Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.}}
            siri Sriram Melkote (Inactive) made changes -
            Link This issue relates to MB-28734 [ MB-28734 ]
            siri Sriram Melkote (Inactive) made changes -
            Description We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:
            {{Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.}}

            In 6.6.0, we need to advertise the following in both release notes and documentation:
            {{Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.}}
            We need to document and release-note the below limitation in 5.5.x, 6.0.x and 6.5.x codelines:

            {{Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot create a fresh timer. Both limitations are addressed in 6.6.0 by MB-28734.}}

            In 6.6.0, we need to advertise the following in both release notes and documentation:

            {{Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.}}
            jon.strabala Jon Strabala added a comment - - edited

             

            Sriram Melkote Proposed DOC pull request https://github.com/couchbase/docs-server/pull/1431

            (new section to https://github.com/couchbase/docs-server/edit/release/6.5/modules/eventing/pages/eventing-timers.adoc) should we also reference MB-28734 (fix) and MB-39301 (fix) ?

            Limitations

            In the 5.5.x, 6.0.x and 6.5.x releases

             

            • Eventing timers once created cannot be overwritten by using the same reference.
            • In addition, a function that is invoked by a timer callback cannot reliably create a fresh timer (a work around can be done via a second cooperative Function).

             

            In the 6.5.X releases

            • Creating timers in the future (as in one hour+) in an otherwise idle system can result in a growing number of metadata bucket operations which can eventually block mutations for a given Eventing function. In 6.5.X a user space work around can be accomplished via a second cooperative Function. 

            The severity is governed by:

              • The number of vBuckets holding an active timer. Therefore if there are only a few timers in the future the issue may not be noticeable or materialize.
              • Whether an Eventing timer has fired recently on a vBucket (which clears the issue for the given vBucket on a per function basis). Therefore systems with lots of near term timer activity will not experience this issue even if timers are scheduled far into the future.

             

            All of these limitations are removed in release 6.6.0

            • Eventing timers can be cancelled using cancelTimer() function, or by creating a new timer with the same reference as an existing timer.
            • Recurring timers are fully supported, i.e. a function that is invoked by a timer callback can reliably create fresh timers.
            • Timers can be created days/weeks/years in the future with no adverse performance impact on an otherwise idle Eventing system.
            jon.strabala Jon Strabala added a comment - - edited   Sriram Melkote Proposed DOC pull request  https://github.com/couchbase/docs-server/pull/1431 (new section to  https://github.com/couchbase/docs-server/edit/release/6.5/modules/eventing/pages/eventing-timers.adoc ) should we also reference  MB-28734 (fix) and MB-39301 (fix) ? Limitations In the 5.5.x, 6.0.x and 6.5.x releases   Eventing timers once created cannot be overwritten by using the same reference. In addition, a function that is invoked by a timer callback cannot reliably create a fresh timer (a work around can be done via a second cooperative Function).   In the 6.5.X releases Creating timers in the future (as in one hour+) in an otherwise idle system can result in a growing number of metadata bucket operations which can eventually block mutations for a given Eventing function. In 6.5.X a user space work around can be accomplished via a second cooperative Function.  The severity is governed by: The number of vBuckets holding an active timer. Therefore if there are only a few timers in the future the issue may not be noticeable or materialize. Whether an Eventing timer has fired recently on a vBucket (which clears the issue for the given vBucket on a per function basis). Therefore systems with lots of near term timer activity will not experience this issue even if timers are scheduled far into the future.   All of these limitations are removed in release 6.6.0 Eventing timers can be cancelled using cancelTimer() function, or by creating a new timer with the same reference as an existing timer. Recurring timers are fully supported, i.e. a function that is invoked by a timer callback can reliably create fresh timers. Timers can be created days/weeks/years in the future with no adverse performance impact on an otherwise idle Eventing system.
            amarantha.kulkarni Amarantha Kulkarni (Inactive) made changes -
            Labels releasenote must-fix releasenote
            amarantha.kulkarni Amarantha Kulkarni (Inactive) made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            amarantha.kulkarni Amarantha Kulkarni (Inactive) added a comment - https://docs-staging.couchbase.com/server/6.6/release-notes/relnotes.html
            amarantha.kulkarni Amarantha Kulkarni (Inactive) made changes -
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Resolved [ 5 ]

            People

              amarantha.kulkarni Amarantha Kulkarni (Inactive)
              siri Sriram Melkote (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty