{"push_id":1214225331,"size":6,"distinct_size":0,"ref":"refs/heads/master","head":"2bfd984fad5f22ca64ac356a5cdaa6bfc81cbed3","before":"31722a98efa2a05c293da9674c128201a145ff25","commits":[{"sha":"033712ef1ed5eee22c954403fc722f6d79e01705","author":{"name":"Greg Sjaardema","email":"788e5fb1b0366f36cf5839158b9e72d7c4b08b3a@gmail.com"},"message":"Use correct symbol\n\nAs best I can tell, this should be ENABLE_PARALLEL4 instead of ENABLE_PARALLEL.  ENABLE_PARALLEL is not used other than in a couple documentation files.  But, ENABLE_PARALLEL4 is set in the top-level CMakeLists.txt file if a parallel hdf5 library is detected.","distinct":false,"url":"https://api.github.com/repos/Unidata/netcdf-c/commits/033712ef1ed5eee22c954403fc722f6d79e01705"},{"sha":"4ba6005ff2e094b59c69c35f91cee76071fe9481","author":{"name":"Greg Sjaardema","email":"788e5fb1b0366f36cf5839158b9e72d7c4b08b3a@gmail.com"},"message":"Merge branch 'master' into patch-6","distinct":false,"url":"https://api.github.com/repos/Unidata/netcdf-c/commits/4ba6005ff2e094b59c69c35f91cee76071fe9481"},{"sha":"fa6d64d018cd7f9ba0124eb487564995cb1913b8","author":{"name":"Ward Fisher","email":"a730e57ebbb4c33cc7cf646a62202668c8b82d46@ucar.edu"},"message":"Merge branch 'patch-6' of https://github.com/gsjaardema/netcdf-c into gh-squash","distinct":false,"url":"https://api.github.com/repos/Unidata/netcdf-c/commits/fa6d64d018cd7f9ba0124eb487564995cb1913b8"},{"sha":"9290b31c9dd5aa2961e208a867022f0e607cdff3","author":{"name":"Greg Sjaardema","email":"788e5fb1b0366f36cf5839158b9e72d7c4b08b3a@gmail.com"},"message":"Fix variable bounds check for parallel output\n\nThe following code is in nc4hdf.c, function `nc4_put_vara`.\n\n```\n  /* Check dimension bounds. Remember that unlimited dimnsions can\n   * put data beyond their current length. */\n  for (d2 = 0; d2 < var->ndims; d2++)\n    {\n      dim = var->dim[d2];\n      assert(dim && dim->dimid == var->dimids[d2]);\n      if (!dim->unlimited)\n        {\n          if (start[d2] >= (hssize_t)fdims[d2])\n            BAIL_QUIET(NC_EINVALCOORDS);\n          if (start[d2] + count[d2] > fdims[d2])\n            BAIL_QUIET(NC_EEDGE);\n        }\n    }\n```\n\nThere is an issue when the process with the highest rank has zero items to output.  As an example, if I have 4 mpi processes which are each writing the following amount of data:\n * rank 0: 0 items\n * rank 1: 2548 items\n * rank 2: 4352 items\n * rank 3: 0 items.\n\nI will define the variable to have a length of 6900 items (0 + 2548 + 4352 + 0).  When I am outputting data to the variable, each rank will call nc_put_vara_longlong with the following start and count values:\n * rank 0: start = 0, count = 0\n * rank 1: start = 0, count = 2548\n * rank 2: start = 2548, count = 4352\n * rank 3: start = 6900, count = 0.\n\nIn each case, the `start` for rank N is equal to `start` for rank N-1 + `count` for rank N-1.  This all works ok until the highest rank is writing 0 items.  In that case, the `start` value for that rank is equal to the total size of the variable and the check in the code fragment shown above fails since `start[] == fdims[]`.\n\nThis could be fixed in the application code by checking whether the `count` is zero and if so, then set `start` to 0 also, but I think that is a kluge that should not be required.\n\nNote that this test appears three times in this file.  In one case, the check for non-zero count already exists, but not in the other two.  This pull request adds the check to the other two tests.","distinct":false,"url":"https://api.github.com/repos/Unidata/netcdf-c/commits/9290b31c9dd5aa2961e208a867022f0e607cdff3"},{"sha":"c7ccdfa543018fad132d99509188eb26a81ad6e7","author":{"name":"Greg Sjaardema","email":"788e5fb1b0366f36cf5839158b9e72d7c4b08b3a@gmail.com"},"message":"More pedantically correct check\n\nThis modifies the previous change to be more pedantically correct.  It should always be an NC_EINVALCOORDS error if start exceeds fdims[2]; however, if start equals fdims[2], then it is only an error if count is non-zero.","distinct":false,"url":"https://api.github.com/repos/Unidata/netcdf-c/commits/c7ccdfa543018fad132d99509188eb26a81ad6e7"},{"sha":"2bfd984fad5f22ca64ac356a5cdaa6bfc81cbed3","author":{"name":"Greg Sjaardema","email":"788e5fb1b0366f36cf5839158b9e72d7c4b08b3a@gmail.com"},"message":"Update testing -- not error if start==size","distinct":false,"url":"https://api.github.com/repos/Unidata/netcdf-c/commits/2bfd984fad5f22ca64ac356a5cdaa6bfc81cbed3"}]}
{"actor":{"display_login":"WardF"}}