Good morning, Team - any update on this?

- Mansi


On Thu, Dec 28, 2017 at 12:32 AM, Manaswini Maharana <mmahar...@cloudera.com
> wrote:

> Hello team, I'd like to contribute to Impala and would like to start it
> with this (IMPALA-6296) jira. Can I please have it assigned to me?
>
> My development environment is ready. I'm on ubuntu 16.04 so yes some
> challenges to set up the environment especially with the LD_LIBRARY_PATH
> issues. So far I'm able to work past it and might ask for another pair of
> eyes to ensure it follows standard. The builds are going fine and runs a
> bit longer as I've disabled the -so. Apart from setup, I'm was able to
> reproduce the issue and might have been ready with the fix which I'd like
> to discuss  once I'm officially assigned the jira.
>
> Thanks Tim, for the instructions, it was very helpful.
>
>
> Thanks!
> Mansi
>
>
>
> On Tue, Dec 12, 2017 at 8:24 PM, Tim Armstrong <tarmstr...@cloudera.com>
> wrote:
>
>> If you'd like to contribute a patch to Impala, but aren't sure what
>> you want to work on, you can look at Impala's newbie issues:
>> https://issues.apache.org/jira/issues/?filter=12341668. You can find
>> detailed instructions on submitting patches at
>> https://cwiki.apache.org/confluence/display/IMPALA/Contributing+to+Impala
>> .
>> This is a walkthrough of a ticket a new contributor could take on,
>> with hopefully enough detail to get you going but not so much to take
>> away the fun.
>>
>> How can we solve https://issues.apache.org/jira/browse/IMPALA-6296,
>> "DCheck in CodegenSymbolEmitter when --asm_module_dir is set on debug
>> build
>> "?
>> First, make sure you have your development environment set up. Let's
>> see if we can reproduce the issue.
>>
>> Create a directory for the codegen modules then start impala-server
>> $ mkdir codegen-modules
>> $ start-impala-cluster.py --impalad_args="--opt_module_d
>> ir=codegen-modules
>> --unopt_module_dir=codegen-modules --asm_module_dir=codegen-modules"
>>
>> Now run a query through Impala. I chose this query because it uses
>> Impala's
>> runtime code generation ("codegen") to improve performance
>> $ bin/impala-shell.sh -q "select count(*) from tpch.lineitem"
>>
>> After a few seconds, you should see an error from Impala crashing:
>> Error communicating with impalad: TSocket read 0 bytes
>> Could not execute command: select count(*) from tpch.lineitem
>>
>> Attempting to run any further queries will fail because of the crashed
>> Impala daemons:
>> $ impala-shell.sh -q "select count(*) from tpch.lineitem";
>> Starting Impala Shell without Kerberos authentication
>> Error connecting: TTransportException, Could not connect to
>> localhost:21000
>> Not connected to Impala, could not execute queries.
>>
>> If you look at logs/cluster/impalad.ERROR you will see a message
>> explaining
>> the crash - we hit a DCHECK (a.k.a. an assertion):
>>
>> F1212 17:10:07.642722  9138 codegen-symbol-emitter.cc:90] Check failed:
>> perf_map_.find(obj.getData().data()) != perf_map_.end()
>> *** Check failure stack trace: ***
>>     @          0x3be16ed  google::LogMessage::Fail()
>>     @          0x3be2f92  google::LogMessage::SendToLog()
>>     @          0x3be10c7  google::LogMessage::Flush()
>>     @          0x3be468e  google::LogMessageFatal::~LogMessageFatal()
>>     @          0x1b354f1
>> impala::CodegenSymbolEmitter::NotifyFreeingObject()
>>     @          0x375b791  llvm::MCJIT::NotifyFreeingObject()
>>     @          0x375b811  llvm::MCJIT::~MCJIT()
>>     @          0x375bfc9  llvm::MCJIT::~MCJIT()
>>     @          0x1b265ba  std::default_delete<>::operator()()
>>     @          0x1b23e21  std::unique_ptr<>::reset()
>>     @          0x1b11198  impala::LlvmCodeGen::Close()
>>     @          0x182194d  impala::RuntimeState::ReleaseResources()
>>     @          0x1893a35  impala::FragmentInstanceState::Close()
>>     @          0x1890d58  impala::FragmentInstanceState::Exec()
>>     @          0x1879afa  impala::QueryState::ExecFInstance()
>>     @          0x18783bc
>> _ZZN6impala10QueryState15StartFInstancesEvENKUlvE_clEv
>>     @          0x187a739
>> _ZN5boost6detail8function26void_function_obj_invoker0IZN6imp
>> ala10QueryState15StartFInstancesEvEUlvE_vE6invokeERNS1_15function_bufferE
>>     @          0x17c7200  boost::function0<>::operator()()
>>     @          0x1abdf8b  impala::Thread::SuperviseThread()
>>     @          0x1ac6b16  boost::_bi::list4<>::operator()<>()
>>     @          0x1ac6a59  boost::_bi::bind_t<>::operator()()
>>     @          0x1ac6a1c  boost::detail::thread_data<>::run()
>>     @          0x2d6b08a  thread_proxy
>>     @     0x7fcb5ff146ba  start_thread
>>     @     0x7fcb5fc4a3dd  clone
>>
>> It looks like something is wrong with the code - 'perf_map_' doesn't have
>> anything in it. If we look a few lines above, it looks like 'perf_map_' is
>> only filled in if 'emit_perf_map_' is true.
>>
>>   if (emit_perf_map_) {
>>     lock_guard<SpinLock> perf_map_lock(perf_map_lock_);
>>     DCHECK(perf_map_.find(obj.getData().data()) == perf_map_.end());
>>     perf_map_[obj.getData().data()] = std::move(perf_map_entries);
>>     WritePerfMapLocked();
>>   }
>>
>> Maybe we should also be checking 'emit_perf_map_' before the DCHECK?
>>
>> After you have fixed this bug, you should be able to run the query without
>> Impala crashing and you should be able to inspect the assembly generated
>> by
>> Impala in codegen-modules/*.asm
>>
>> Have fun, and don't be afraid to ask dev@impala.apache.org is you have
>> any questions!
>>
>
>

Reply via email to