when(opContext.getFragmentHandle()).thenReturn(ExecProtos.FragmentHandle.newBuilder().setMajorFragmentId(2323).setMinorFragmentId(234234).build()); when(opContext.getAllocator()).thenReturn(ALLOCATOR); when(opContext.getOptions()).thenReturn(optionManager);
subBuilder.mergeFrom(handle_); handle_ = subBuilder.buildPartial();
.setMajorFragmentId(wrapper.getMajorFragmentId()) // .setMinorFragmentId(minorFragmentId) // .setQueryId(queryId) // .build();
.setQueryId(new AttemptId().toQueryId()) .setMinorFragmentId(0) .setMajorFragmentId(0) .build();
.setQueryId(new AttemptId().toQueryId()) .setMinorFragmentId(0) .setMajorFragmentId(0) .build();
subBuilder.mergeFrom(receiver_); receiver_ = subBuilder.buildPartial(); subBuilder.mergeFrom(sender_); sender_ = subBuilder.buildPartial();
subBuilder.mergeFrom(handle_); handle_ = subBuilder.buildPartial();
SharedResource resource = mock(SharedResource.class); QueryId queryId = ExternalIdHelper.toQueryId(ExternalIdHelper.generateExternalId()); FragmentHandle handle = FragmentHandle.newBuilder().setMajorFragmentId(0).setMinorFragmentId(0).setQueryId(queryId).build(); FragmentWorkQueue queue = mock(FragmentWorkQueue.class);
.addAllIncomingMinorFragment(list) .build(); ExecProtos.FragmentHandle handle = ExecProtos.FragmentHandle.newBuilder().setMajorFragmentId(2323).setMinorFragmentId(234234).build(); BufferAllocator allocator = new RootAllocator(2000000); boolean outOfMemory = false;
when(opContext.getFragmentHandle()).thenReturn(ExecProtos.FragmentHandle.newBuilder().setMajorFragmentId(2323).setMinorFragmentId(234235).build()); when(opContext.getAllocator()).thenReturn(ALLOCATOR); when(opContext.getOptions()).thenReturn(optionManager);
SharedResource resource = mock(SharedResource.class); QueryId queryId = ExternalIdHelper.toQueryId(ExternalIdHelper.generateExternalId()); FragmentHandle handle = FragmentHandle.newBuilder().setMajorFragmentId(0).setMinorFragmentId(0).setQueryId(queryId).build(); FragmentWorkQueue queue = mock(FragmentWorkQueue.class); final ExecutorService executorService = Executors.newFixedThreadPool(1);
when(opContext.getFragmentHandle()).thenReturn(FragmentHandle.newBuilder().setMajorFragmentId(2323).setMinorFragmentId(234234).build());
.setQueryId(new AttemptId().toQueryId()) .setMinorFragmentId(0) .setMajorFragmentId(0) .build(); return new OperatorContextImpl( config,
public void mergeFrom(io.protostuff.Input input, com.dremio.exec.proto.ExecProtos.FragmentHandle.Builder builder) throws java.io.IOException { for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this)) { switch(number) { case 0: return; case 1: builder.setQueryId(input.mergeObject(com.dremio.exec.proto.UserBitShared.QueryId.newBuilder(), com.dremio.exec.proto.SchemaUserBitShared.QueryId.MERGE)); break; case 2: builder.setMajorFragmentId(input.readInt32()); break; case 3: builder.setMinorFragmentId(input.readInt32()); break; case 4: builder.setParentQueryId(input.mergeObject(com.dremio.exec.proto.UserBitShared.QueryId.newBuilder(), com.dremio.exec.proto.SchemaUserBitShared.QueryId.MERGE)); break; default: input.handleUnknownField(number, this); } } } public boolean isInitialized(com.dremio.exec.proto.ExecProtos.FragmentHandle.Builder builder)
private OperatorContextImpl createContext(Writer writer) { BufferAllocator allocator = context.getAllocator().newChildAllocator("direct-command", 0, Long.MAX_VALUE); final OperatorStats stats = new OperatorStats(new OpProfileDef(0,0,0), allocator); final OperatorContextImpl oc = new OperatorContextImpl( context.getConfig(), FragmentHandle.newBuilder().setQueryId(context.getQueryId()).setMajorFragmentId(0).setMinorFragmentId(0).build(), writer, allocator, allocator, null, stats, null, null, context.getFunctionRegistry(), null, context.getOptions(), context.getNamespaceService(), null, NodeDebugContextProvider.NOOP, 60000, null, ImmutableList.of()); return oc; } }
/** * Check that a dead node doesn't not trigger a successful query notification if * node managing the last major fragments (see DX-10956) */ @Test public void testNodeDead() { InOrder inOrder = Mockito.inOrder(completionListener); AttemptObservers observers = AttemptObservers.of(observer); QueryManager queryManager = new QueryManager(queryId, context, null, completionListener, new Pointer<>(), observers, true, true, catalog); final NodeEndpoint endpoint = NodeEndpoint.newBuilder().setAddress("host1").setFabricPort(12345).build(); PlanFragment fragment = PlanFragment.newBuilder() .setAssignment(endpoint) .setHandle(FragmentHandle.newBuilder().setMajorFragmentId(0).setQueryId(queryId).build()) .build(); ExecutionPlan executionPlan = new ExecutionPlan(new Screen(null), 0, Collections.singletonList(fragment)); observers.planCompleted(executionPlan); // Notify node is dead queryManager.getNodeStatusListener().nodesUnregistered(ImmutableSet.of(endpoint)); // Ideally, we should not even call succeeded... inOrder.verify(completionListener).failed(any(Exception.class)); inOrder.verify(completionListener).succeeded(); }
/** * <code>optional .exec.bit.FragmentHandle handle = 1;</code> */ public Builder mergeHandle(com.dremio.exec.proto.ExecProtos.FragmentHandle value) { if (handleBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001) && handle_ != com.dremio.exec.proto.ExecProtos.FragmentHandle.getDefaultInstance()) { handle_ = com.dremio.exec.proto.ExecProtos.FragmentHandle.newBuilder(handle_).mergeFrom(value).buildPartial(); } else { handle_ = value; } onChanged(); } else { handleBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; return this; } /**
/** * <code>optional .exec.bit.FragmentHandle sender = 2;</code> */ public Builder mergeSender(com.dremio.exec.proto.ExecProtos.FragmentHandle value) { if (senderBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && sender_ != com.dremio.exec.proto.ExecProtos.FragmentHandle.getDefaultInstance()) { sender_ = com.dremio.exec.proto.ExecProtos.FragmentHandle.newBuilder(sender_).mergeFrom(value).buildPartial(); } else { sender_ = value; } onChanged(); } else { senderBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
/** * <code>optional .exec.bit.FragmentHandle receiver = 1;</code> */ public Builder mergeReceiver(com.dremio.exec.proto.ExecProtos.FragmentHandle value) { if (receiverBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001) && receiver_ != com.dremio.exec.proto.ExecProtos.FragmentHandle.getDefaultInstance()) { receiver_ = com.dremio.exec.proto.ExecProtos.FragmentHandle.newBuilder(receiver_).mergeFrom(value).buildPartial(); } else { receiver_ = value; } onChanged(); } else { receiverBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; return this; } /**
/** * <code>optional .exec.bit.FragmentHandle handle = 2;</code> */ public Builder mergeHandle(com.dremio.exec.proto.ExecProtos.FragmentHandle value) { if (handleBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && handle_ != com.dremio.exec.proto.ExecProtos.FragmentHandle.getDefaultInstance()) { handle_ = com.dremio.exec.proto.ExecProtos.FragmentHandle.newBuilder(handle_).mergeFrom(value).buildPartial(); } else { handle_ = value; } onChanged(); } else { handleBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**