valgrind reporting invalid memory access in roxie

Description

==18105== Invalid read of size 1
==18105== at 0x5170DB8: CRoxieServerInternalSinkActivity::stopSink(unsigned int) (ccdserver.cpp:2704)
==18105== by 0x516BBC4: CRoxieServerActivity::stop() (ccdserver.cpp:1339)
==18105== by 0x51C17AD: CRoxieServerDiskReadBaseActivity::stop() (ccdserver.cpp:21447)
==18105== by 0x516BBF6: CRoxieServerActivity::stop() (ccdserver.cpp:1342)
==18105== by 0x516BBF6: CRoxieServerActivity::stop() (ccdserver.cpp:1342)
==18105== by 0x518B4C4: CRoxieServerThroughSpillActivity::stop(unsigned int, unsigned int&) (ccdserver.cpp:9004)
==18105== by 0x518A38C: CRoxieServerThroughSpillActivity::OutputAdaptor::stop() (ccdserver.cpp:8750)
==18105== by 0x516CF9C: StrandProcessor::stop() (ccdserver.cpp:1691)
==18105== by 0x516BBF6: CRoxieServerActivity::stop() (ccdserver.cpp:1342)
==18105== by 0x516BCD5: CRoxieServerActivity::abort() (ccdserver.cpp:1356)
==18105== by 0x517106B: CRoxieServerInternalSinkActivity::execute(unsigned int, unsigned char const*) (ccdserver.cpp:2741)
==18105== by 0x51DE580: CActivityGraph::doExecute(unsigned int, unsigned char const*)::casyncfor::Do(unsigned int) (ccdserver.cpp:27053)
==18105== Address 0x1e955ac0 is 0 bytes after a block of size 0 alloc'd
==18105== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18105== by 0x5170B98: CRoxieServerInternalSinkActivity::CRoxieServerInternalSinkActivity(IRoxieSlaveContext*, IRoxieServerActivityFactory const*, IProbeManager*, unsigned int) (ccdserver.cpp:2678)
==18105== by 0x519515E: CRoxieServerDiskWriteActivity::CRoxieServerDiskWriteActivity(IRoxieSlaveContext*, IRoxieServerActivityFactory const*, IProbeManager*) (ccdserver.cpp:11444)
==18105== by 0x5197B19: CRoxieServerDiskWriteActivityFactory::createActivity(IRoxieSlaveContext*, IProbeManager*) const (ccdserver.cpp:11808)
==18105== by 0x51DDB8A: CActivityGraph::createGraph(IRoxieSlaveContext*) (ccdserver.cpp:26891)
==18105== by 0x5162670: createActivityGraph(IRoxieSlaveContext*, char const*, unsigned int, ActivityArray&, IRoxieServerActivity*, IProbeManager*, IRoxieContextLogger const&, unsigned int) (ccdserver.cpp:27517)
==18105== by 0x525CE52: CQueryFactory::lookupGraph(IRoxieSlaveContext*, char const*, IProbeManager*, IRoxieContextLogger const&, IRoxieServerActivity*) const (ccdquery.cpp:1275)
==18105== by 0x513C75C: CRoxieContextBase::beginGraph(char const*) (ccdcontext.cpp:1431)
==18105== by 0x513CEA7: CRoxieContextBase::executeGraph(char const*, bool, unsigned int, void const*) (ccdcontext.cpp:1514)
==18105== by 0x1C391D79: MyEclProcess::perform(IGlobalCodeContext*, unsigned int) (in /var/lib/HPCCSystems/queries/myroxie/libW20170106-102322.so)
==18105== by 0x6944D73: WorkflowMachine::performItem(unsigned int, unsigned int) (workflow.cpp:959)
==18105== by 0x694423D: WorkflowMachine::doExecuteItem(IRuntimeWorkflowItem&, unsigned int) (workflow.cpp:818)

Looks like numOutputs was 0 for this activity. This was while running regression suite setup

Conclusion

None

Activity

Show:

Gavin Halliday January 27, 2017 at 12:09 PM

Modified example which still triggers the problem:

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Components

Assignee

Reporter

Priority

Compatibility

Point

Fix versions

Affects versions

Created January 6, 2017 at 10:45 AM
Updated January 27, 2017 at 12:34 PM
Resolved January 27, 2017 at 12:34 PM