You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@parquet.apache.org by "Uwe L. Korn (JIRA)" <ji...@apache.org> on 2016/12/13 05:58:58 UTC

[jira] [Commented] (PARQUET-798) usage of THRIFT_HOME in build?

    [ https://issues.apache.org/jira/browse/PARQUET-798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15744274#comment-15744274 ] 

Uwe L. Korn commented on PARQUET-798:
-------------------------------------

{{THRIFT_HOME}} should tell the CMake where to find a _built_ THRIFT, e.g. so that the thrift header should reside at {{${THRIFT_HOME}/include/thrift/Thrift.h}}. 

To better understand your problem:

* What version of Thrift do you want to use? We currently use 0.9.1 in parquet-cpp but 0.9.3 seems to work too.
* Did you explicitly exclude Thrift from being build in the third-party step?
* Can you do a clean build and post the output of the {{cmake}} run. This should give us some insight on the location where it found Thrift.
* Are you on Linux or Mac?

> usage of THRIFT_HOME in build?
> ------------------------------
>
>                 Key: PARQUET-798
>                 URL: https://issues.apache.org/jira/browse/PARQUET-798
>             Project: Parquet
>          Issue Type: Bug
>          Components: parquet-cpp
>            Reporter: William Forson
>
> Hi,
> I posted this issue a while back on the old parquet-cpp github page and forgot about it...until just now.
> First of all, to briefly describe my use case: I am using parquet-cpp as a dependency in a project which already has a dependency on thrift. As such, I'd like to be able to build parquet-cpp against the version of thrift which we are already using in the project.
> When I first spotted the notes regarding {{THRIFT_HOME}} in the readme, I thought this looked like exactly what I wanted -- that is, a way to configure the parquet-cpp build process to use external/pre-built thrift artifacts. So, for starters: am I simply misinterpreting the meaning of {{THRIFT_HOME}}? (e.g. does that specify a _destination_ directory for thrift artifacts built during the parquet-cpp 3p build step?) And if so, is there any good way (or bad way) to accomplish what I'm trying to do here?
> Otherwise, when I try to use my own thrift installation (via {{THRIFT_HOME}}), the build fails like so:
> {quote}
> $ make parquetcpp
> cd parquet-cpp && source ./thirdparty/set_thirdparty_env.sh && make
> make[1]: Entering directory `parquet-cpp'
> make[2]: Entering directory `parquet-cpp'
> make[3]: Entering directory `parquet-cpp'
> Scanning dependencies of target parquet_thrift
> make[3]: Leaving directory `parquet-cpp'
> make[3]: Entering directory `parquet-cpp'
> [  1%] Building CXX object src/parquet/thrift/CMakeFiles/parquet_thrift.dir/parquet_types.cpp.o
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function ‘uint32_t parquet::format::Statistics::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:179:3: error: ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function ‘uint32_t parquet::format::Statistics::write(apache::thrift::protocol::TProtocol*) const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:244:3: error: ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function ‘uint32_t parquet::format::SchemaElement::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:357:3: error: ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function ‘uint32_t parquet::format::SchemaElement::write(apache::thrift::protocol::TProtocol*) const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:471:3: error: ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
>    ^
> <SNIP ... you get the idea>
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function ‘uint32_t parquet::format::FileMetaData::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:2646:3: error: ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function ‘uint32_t parquet::format::FileMetaData::write(apache::thrift::protocol::TProtocol*) const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:2775:3: error: ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
>    ^
> make[3]: *** [src/parquet/thrift/CMakeFiles/parquet_thrift.dir/parquet_types.cpp.o] Error 1
> make[3]: Leaving directory `parquet-cpp'
> make[2]: *** [src/parquet/thrift/CMakeFiles/parquet_thrift.dir/all] Error 2
> make[2]: Leaving directory `parquet-cpp'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `parquet-cpp'
> make: *** [<...>/libparquet.a] Error 2
> {quote}
> This kinda smells like a circular dependency (as all of the types/headers mentioned above look fine), but I haven't dug through the internals of the parquet-cpp build logic enough to diagnose it in more detail. Before doing so, I wanted to post here for a sanity check on my use case, and the intended semantics/usage of {{THRIFT_HOME}}.
> Any help/clarification will be much appreciated!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)