as confirmed, the issue is fixed by your updates. 2015-03-17 11:22 GMT+08:00 Shi, Shaofeng <[email protected]>:
> I made a fix on the staging branch, the binary package on download page > need sometime to be updated; if you couldn’t wait, please pull the latest > code, checkout staging branch, and then run ./script/package.sh to build a > new package; Please let me know if still have problem; this is the JIRA > for this problem: > > https://issues.apache.org/jira/browse/KYLIN-642 > > > On 3/17/15, 9:59 AM, "dong wang" <[email protected]> wrote: > > >many thanks, the issue may not that be difficult but very very urgent > >since it affects the rollback feature > > > >2015-03-17 9:50 GMT+08:00 Shi, Shaofeng <[email protected]>: > > > >> Okay, I was able to reproduce this problem; will look into it now; > >> > >> On 3/17/15, 9:45 AM, "dong wang" <[email protected]> wrote: > >> > >> >Shaofeng, I think mine is a little different from what you mentioned: > >> >1, the partition date column can be recognized correctly > >> >2, the segment is built successfully already > >> >3, I just refresh the LATEST successful segment due to some base data > >> >changes > >> > > >> >2015-03-16 22:03 GMT+08:00 Shi, Shaofeng <[email protected]>: > >> > > >> >> Hi Dong, which version of the Kylin build that you deployed? > >> >> > >> >> In last week we found a bug which will cause Kylin fail to allocate a > >> >>new > >> >> a segment; Kylin will report error saying that the startDate is not > >> >> matched with expectation; Here is the JIRA: > >> >> > >> >> https://issues.apache.org/jira/browse/KYLIN-628 > >> >> > >> >> If you¹re using Kylin¹s binary package, please update to the latest > >>one > >> >>on > >> >> https://kylin.incubator.apache.org/download/ > >> >> If you¹re running from source code, please pull the latest code on > >> >>staging > >> >> branch; > >> >> > >> >> On 3/16/15, 7:40 PM, "dong wang" <[email protected]> wrote: > >> >> > >> >> >since the following codes pass invalid startdate and enddate, which > >> >>leads > >> >> >to the issue > >> >> > > >> >> > public CubeSegment appendSegments(CubeInstance cube, long endDate) > >> >> >throws > >> >> >IOException { > >> >> > checkNoBuildingSegment(cube); > >> >> > > >> >> > CubeSegment newSegment; > >> >> > if > >> >> > >>>(cube.getDescriptor().getModel().getPartitionDesc().isPartitioned()) { > >> >> > long startDate = > >>calculateStartDateForAppendSegment(cube); > >> >> > newSegment = newSegment(cube, startDate, endDate); > >> >> > } else { > >> >> > newSegment = newSegment(cube, 0, Long.MAX_VALUE); > >> >> > } > >> >> > > >> >> > validateNewSegments(cube, newSegment); > >> >> > cube.getSegments().add(newSegment); > >> >> > Collections.sort(cube.getSegments()); > >> >> > updateCube(cube); > >> >> > > >> >> > return newSegment; > >> >> > } > >> >> > > >> >> >2015-03-16 19:38 GMT+08:00 dong wang <[email protected]>: > >> >> > > >> >> >> The related codes, since I'm not that clear about the logic it > >>should > >> >> >>be: > >> >> >> > >> >> >> private CubeSegment newSegment(CubeInstance cubeInstance, long > >> >> >> startDate, long endDate) { > >> >> >> if (startDate >= endDate) > >> >> >> throw new IllegalArgumentException("New segment range > >> >> >>invalid, > >> >> >> start date must be earlier than end date, " + startDate + " < " + > >> >> >>endDate); > >> >> >> > >> >> >> CubeSegment segment = new CubeSegment(); > >> >> >> String incrementalSegName = > >> >> >>CubeSegment.getSegmentName(startDate, > >> >> >> endDate); > >> >> >> segment.setUuid(UUID.randomUUID().toString()); > >> >> >> segment.setName(incrementalSegName); > >> >> >> Date creatTime = new Date(); > >> >> >> segment.setCreateTimeUTC(creatTime.getTime()); > >> >> >> segment.setDateRangeStart(startDate); > >> >> >> segment.setDateRangeEnd(endDate); > >> >> >> segment.setStatus(SegmentStatusEnum.NEW); > >> >> >> > >> >>segment.setStorageLocationIdentifier(generateStorageLocation()); > >> >> >> > >> >> >> segment.setCubeInstance(cubeInstance); > >> >> >> > >> >> >> segment.validate(); > >> >> >> return segment; > >> >> >> } > >> >> >> > >> >> >> 2015-03-16 19:29 GMT+08:00 dong wang <[email protected]>: > >> >> >> > >> >> >>> more notes. this segment to be refreshed is built sccessful > >>first, > >> >> >>>then, > >> >> >>> I plan to refresh it due to some incorrect data. > >> >> >>> > >> >> >>> 2015-03-16 19:25 GMT+08:00 dong wang <[email protected]>: > >> >> >>> > >> >> >>>> watched with firebug, the parameters pass to the backend seem > >>to be > >> >> >>>> CORRECT as below: > >> >> >>>> > >> >> >>>> {buildType: "BUILD", startTime: 1426377600000, endTime: > >> >>1426464000000} > >> >> >>>> > >> >> >>>> 2015-03-16 19:15 GMT+08:00 dong wang <[email protected]>: > >> >> >>>> > >> >> >>>>> segment detail page shows: > >> >> >>>>> > >> >> >>>>> Start Date (Include) 2015-03-15 00:00:00 > >> >> >>>>> End Date (Exclude) 2015-03-16 00:00:00 > >> >> >>>>> > >> >> >>>>> 2015-03-16 19:11 GMT+08:00 dong wang <[email protected]>: > >> >> >>>>> > >> >> >>>>>> The latest segment is the newest one which contains today's > >>data, > >> >> >>>>>>due > >> >> >>>>>> to some incorrect data, I want to refresh the segment, > >>however, > >> >>when > >> >> >>>>>> cube->actions->refresh->select the latest segment, then the > >> >> >>>>>>following error > >> >> >>>>>> occurs: > >> >> >>>>>> > >> >> >>>>>> New segment range invalid, start date must be earlier than end > >> >>date, > >> >> >>>>>> 1426464000000 < 1426464000000 > >> >> >>>>>> > >> >> >>>>> > >> >> >>>>> > >> >> >>>> > >> >> >>> > >> >> >> > >> >> > >> >> > >> > >> > >
