Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to install Proxygen #25

Closed
vaibhav-kaushal opened this issue Dec 26, 2014 · 15 comments
Closed

Unable to install Proxygen #25

vaibhav-kaushal opened this issue Dec 26, 2014 · 15 comments

Comments

@vaibhav-kaushal
Copy link

I ran the commands as mentioned (run ./deps.sh and then ./reinstall.sh) but the installation fails. Here are the last few lines of the make output: https://gist.github.com/vaibhav-kaushal/586b51257494d56e673a

Basically it never gets out of that tests folder. Here is a screenshot:

screenshot 2014-12-26 17 54 07

I have waited for more than an hour, nothing happened. I tried reinstalling the things again and again but fails every time. I have an Ubuntu updated 14.04 (desktop). What might be the problem here?

@afrind
Copy link
Contributor

afrind commented Jan 5, 2015

We have a fix for this. There was a double static free happening because the same file was included twice in fbthrift. I'll update here when it's pushed.

@vaibhav-kaushal
Copy link
Author

Cool. Thanks! When is it expected to be pushed? I wanted to work on Proxygen and since the compilation process just gets stuck, I can't (I guess it is the testing phase where it gets stuck, but I'm clueless about how to use Proxygen from this state).

@port8080
Copy link

port8080 commented Jan 7, 2015

Fix has been pushed out. If you start with a clean checkout of the proxygen codebase, you should be able to run the compilation process to completion.

Sorry about that!

@port8080 port8080 closed this as completed Jan 7, 2015
@vaibhav-kaushal
Copy link
Author

And here is a new problem!

screenshot 2015-01-08 14 25 28

@viswanathgs
Copy link
Contributor

Could you paste the complete output?

@viswanathgs viswanathgs reopened this Jan 8, 2015
@vaibhav-kaushal
Copy link
Author

I am putting in the output which was available in the terminal (some output which was produced previously during compilation had scrolled past the terminal).

http://pastebin.com/JNGsjitJ

@viswanathgs
Copy link
Contributor

This is due to a missing dependency in github.com/facebook/folly. Fix for folly is on the way. I'll get back once we're good. Thanks!

@viswanathgs
Copy link
Contributor

I just pushed a new version of https://github.com/facebook/folly to add the missing dependency. Could you stash your locally folly build and try recompiling proxygen?

@vaibhav-kaushal
Copy link
Author

Nope, still does not work. Now it goes farther but fails with this: http://pastebin.com/V0yfhEHn

@vaibhav-kaushal
Copy link
Author

Is it possible to make proxygen work without folly? (or thrift?). I am trying to implement a small HTTP server myself and would want to copy the code from proxygen. Since it is BSD code, I feel relatively free but I am not great with C++ right now.

@viswanathgs
Copy link
Contributor

It turned out to be a dependency in fbthrift this time, and it's been fixed now. Sorry about that.
We should soon be independent of thrift, but proxygen lib very heavily relies on folly, so removing that dependency wouldn't be quite feasible.

@vaibhav-kaushal
Copy link
Author

Thanks. I will try to recompile.

And I do not like dependencies. So it’d be great to have thrift as an option! :)

On 14-Jan-2015, at 6:06 am, Viswanath Sivakumar [email protected] wrote:

It turned out to be a dependency in fbthrift this time, and it's been fixed now. Sorry about that.
We should soon be independent of thrift, but proxygen libs very heavily relies on folly, so removing that dependency wouldn't be quite feasible.


Reply to this email directly or view it on GitHub #25 (comment).

@vaibhav-kaushal
Copy link
Author

It compiled. reinstall.sh ran successfully as well. The message it shows after deps.sh complete is this: http://pastebin.com/d2UB6bsk http://pastebin.com/d2UB6bsk

I think it’s done. I will proceed with testing. Just wanted to say - if you can, adding a message like “Compilation done, proceed with reinstall.sh” would be a good thing.

Thanks for your immediate replies and help with this issue.

On 14-Jan-2015, at 6:06 am, Viswanath Sivakumar [email protected] wrote:

It turned out to be a dependency in fbthrift this time, and it's been fixed now. Sorry about that.
We should soon be independent of thrift, but proxygen libs very heavily relies on folly, so removing that dependency wouldn't be quite feasible.


Reply to this email directly or view it on GitHub #25 (comment).

@viswanathgs
Copy link
Contributor

Great, thanks for sticking with this!

@CipherLiu
Copy link

CipherLiu commented Oct 15, 2016

Uploading Screenshot from 2016-10-15 13:45:36.png…
Have this issue fixed? why did I get the same problem with the code on master branch ?

facebook-github-bot pushed a commit that referenced this issue Mar 8, 2018
Summary:
Exposed by UBSAN:
```lang=bash
  proxygen/lib/http/codec/SPDYConstants.cpp:67:11: runtime error: load of value 314159, which is not a valid value for type 'proxygen::spdy::ResetStatusCode'
      #0 0x7f81bb4b39d9 in proxygen::spdy::rstToErrorCode(proxygen::spdy::ResetStatusCode) proxygen/lib/http/codec/SPDYConstants.cpp:67
      #1 0x7f81bb443d31 in proxygen::SPDYCodec::onRstStream(unsigned int) proxygen/lib/http/codec/SPDYCodec.cpp:1331
      #2 0x7f81bb43f559 in proxygen::SPDYCodec::onControlFrame(folly::io::Cursor&) proxygen/lib/http/codec/SPDYCodec.cpp:376
      #3 0x7f81bb43c305 in proxygen::SPDYCodec::parseIngress(folly::IOBuf const&) proxygen/lib/http/codec/SPDYCodec.cpp:309
      #4 0x7f81bb43a4ec in proxygen::SPDYCodec::onIngress(folly::IOBuf const&) proxygen/lib/http/codec/SPDYCodec.cpp:243
      #5 0x7f81cdf12854 in proxygen::PassThroughHTTPCodecFilter::onIngress(folly::IOBuf const&) proxygen/lib/http/codec/HTTPCodecFilter.cpp:170
      #6 0x7f81cdf12854 in proxygen::PassThroughHTTPCodecFilter::onIngress(folly::IOBuf const&) proxygen/lib/http/codec/HTTPCodecFilter.cpp:170
      #7 0x7f81cdf12854 in proxygen::PassThroughHTTPCodecFilter::onIngress(folly::IOBuf const&) proxygen/lib/http/codec/HTTPCodecFilter.cpp:170
      #8 0x7f81cdf12854 in proxygen::PassThroughHTTPCodecFilter::onIngress(folly::IOBuf const&) proxygen/lib/http/codec/HTTPCodecFilter.cpp:170
      #9 0x7f81d0da0239 in proxygen::HTTPSession::processReadData() proxygen/lib/http/session/HTTPSession.cpp:487
      #10 0x7f81d0d9fe39 in proxygen::HTTPSession::readDataAvailable(unsigned long) proxygen/lib/http/session/HTTPSession.cpp:440
      #11 0x7f81e6daea85 in folly::AsyncSocket::handleRead() folly/io/async/AsyncSocket.cpp:1900
      #12 0x7f81e6da93f9 in folly::AsyncSocket::ioReady(unsigned short) folly/io/async/AsyncSocket.cpp:1694
      #13 0x7f81e6dc14ee in folly::AsyncSocket::IoHandler::handlerReady(unsigned short) folly/io/async/AsyncSocket.h:976
      #14 0x7f81e6e5e91b in folly::EventHandler::libeventCallback(int, short, void*) folly/io/async/EventHandler.cpp:160
      #15 0x7f81de739b11 in event_process_active /home/engshare/third-party2/libevent/1.4.14b_hphp/src/libevent-1.4.14b-stable/event.c:390
      #16 0x7f81de739b11 in event_base_loop /home/engshare/third-party2/libevent/1.4.14b_hphp/src/libevent-1.4.14b-stable/event.c:532
      #17 0x7f81e6e11864 in folly::EventBase::loopBody(int) folly/io/async/EventBase.cpp:313
      #18 0x7f81e6e10726 in folly::EventBase::loop() folly/io/async/EventBase.cpp:252
      #19 0x7f81e6e14e85 in folly::EventBase::loopForever() folly/io/async/EventBase.cpp:450
      #20 0x7f81c4141a7b in proxygen::WorkerThread::runLoop() proxygen/lib/services/WorkerThread.cpp:137
      #21 0x7f81c4143afe in proxygen::WorkerThread::start()::$_0::operator()() proxygen/lib/services/WorkerThread.cpp:41
      #22 0x7f81c4143a34 in void std::_Bind_simple<proxygen::WorkerThread::start()::$_0 ()>::_M_invoke<>(std::_Index_tuple<>) third-party-buck/gcc-5-glibc-2.23/build/libgcc/include/c++/trunk/functional:1530
      #23 0x7f81c4143a04 in std::_Bind_simple<proxygen::WorkerThread::start()::$_0 ()>::operator()() third-party-buck/gcc-5-glibc-2.23/build/libgcc/include/c++/trunk/functional:1520
      #24 0x7f81c41438d8 in std::thread::_Impl<std::_Bind_simple<proxygen::WorkerThread::start()::$_0 ()> >::_M_run() third-party-buck/gcc-5-glibc-2.23/build/libgcc/include/c++/trunk/thread:115
      #25 0x7f81da7ef170 in execute_native_thread_routine /home/engshare/third-party2/libgcc/5.x/src/gcc-5/x86_64-facebook-linux/libstdc++-v3/src/c++11/../../../.././libstdc++-v3/src/c++11/thread.cc:84
      #26 0x7f81d7e1f7a8 in start_thread /home/engshare/third-party2/glibc/2.23/src/glibc-2.23/nptl/pthread_create.c:333
      #27 0x7f81d71f9a7c in __clone /home/engshare/third-party2/glibc/2.23/src/glibc-2.23/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:109

  SUMMARY: UndefinedBehaviorSanitizer: invalid-enum-load proxygen/lib/http/codec/SPDYConstants.cpp:67:11
```
Here we have a typical function that converts from one enum type to another. There is a special validation logic in place, if the original enum value is not among predetermined values the result is a "special" error value. UBSAN detected that the argumemnt value which was provided was invalid for the original enum type. To prevent the UB and potential overflow use an int type.

Reviewed By: w-o-o

Differential Revision: D7185566

fbshipit-source-id: 613c8c6aa64d24c48889810e56a79fd370cdb32b
facebook-github-bot pushed a commit that referenced this issue Jul 10, 2020
…eps (#25)

Summary:
Fixes include:
1. Passing "GETDEPS_BUILD_DIR" and "GETDEPS_INSTALL_DIR" env variable and using them in eden/scm/Makefile rather than assuming the source code is always in the same place regardless getdeps arguments (it isn't).
2. Added "fbthrift-source" and "fb303-source" to avoid unnecessary compilation (at least of fb303) and to put fbthrift and fb303 source code in an easy to locate place inside getdeps' "installed" folder.

Pull Request resolved: facebook/sapling#25

Test Plan: sandcastle, check oss-eden_scm-darwin-getdeps

Reviewed By: farnz

Differential Revision: D22431872

Pulled By: lukaspiatkowski

fbshipit-source-id: 8ccbb090713ec085a5dd56df509eb58ab6fb9e34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants