Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-4299

List head do not initialize before using it in zoo_amulti that will cause segment errors.

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Blocker
    • Resolution: Unresolved
    • Affects Version/s: 3.5.4, 3.7.0, 3.6.2
    • Fix Version/s: None
    • Component/s: c client
    • Labels:
      None
    • Hadoop Flags:
      Incompatible change, Reviewed

      Description

      int zoo_amulti(zhandle_t *zh, int count, const zoo_op_t *ops,
      zoo_op_result_t *results, void_completion_t completion, const void *data)

      { struct RequestHeader h =

      {get_xid(), ZOO_MULTI_OP}

      ;
      struct MultiHeader mh = {-1, 1, -1};
      struct oarchive *oa = create_buffer_oarchive();
      completion_head_t clist = { 0 }; // not initialize for cond or lock

      int rc = serialize_RequestHeader(oa, "header", &h);

      ....

       

      queue_completion(&clist, entry, 0); //queue it will segment errors

       

       

      // do lock or unlock which have not been initialized!!
      static void queue_completion(completion_head_t *list, completion_list_t *c,
              int add_to_front)

      {     lock_completion_list(list);     queue_completion_nolock(list, c, add_to_front);     unlock_completion_list(list); }

      // oh my god!!
      int unlock_completion_list(completion_head_t *l)

      {     p_thread_cond_broadcast(&l->cond);     return p_thread_mutex_unlock(&l->lock); }

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              hongchunhua hong
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:

                Time Tracking

                Estimated:
                Original Estimate - 2h
                2h
                Remaining:
                Remaining Estimate - 2h
                2h
                Logged:
                Time Spent - Not Specified
                Not Specified