Page MenuHomePhabricator
Feed Advanced Search

Yesterday

noajshu requested review of D114846: [llvm] [DebugInfo] LLVM debuginfod server. (WIP).
Tue, Nov 30, 10:27 PM · Restricted Project
noajshu updated the summary of D114845: [llvm] [DebugInfo] DebuginfodCollection for tracking local debuginfo. (WIP).
Tue, Nov 30, 10:22 PM · Restricted Project
noajshu updated the summary of D114845: [llvm] [DebugInfo] DebuginfodCollection for tracking local debuginfo. (WIP).
Tue, Nov 30, 10:22 PM · Restricted Project
noajshu updated the summary of D114845: [llvm] [DebugInfo] DebuginfodCollection for tracking local debuginfo. (WIP).
Tue, Nov 30, 10:20 PM · Restricted Project
noajshu requested review of D114845: [llvm] [DebugInfo] DebuginfodCollection for tracking local debuginfo. (WIP).
Tue, Nov 30, 10:12 PM · Restricted Project
noajshu added a comment to D114415: [llvm] [Support] Add HTTP Server Support library..

What's the ultimate use intended for this? For testing the debuginfod client functionality (the llvm-symbolizer functionality is tested with a smaller(?) python http server - perhaps that could be used more & we could avoid having this C++ HTTP server implementation?)?

It's for the server part of the LLVM debuginfod implementation. elfutils debuginfod has two parts: (1) debuginfod-find client and the corresponding library that could be integrated into other tools and (2) debuginfod which is a small daemon that periodically scans a set of directories, indexes any debugging information it finds and serves it over the builtin HTTP server using the debuginfod protocol. We have been focusing on #1 so far but we would also like to implement #2 which is really important for local development. https://groups.google.com/g/llvm-dev/c/jFdq0qYtKqM/m/1dLcYUGBBAAJ has more details.

Oh, fair enough - just checking it wasn't only being implemented for testing. Would the python script from the llvm-symbolizer test be adequate for the production/local developer scenarios you have in mind? (I don't mind the C++ too much, but just trying to understand the landscape, tradeoffs, etc)

Tue, Nov 30, 3:22 PM · Restricted Project
noajshu added a comment to D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..

Thank you for the helpful comments @jhenderson , I am uploading chnage

Tue, Nov 30, 3:00 PM · Restricted Project
noajshu updated the diff for D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..

Add end-to-end test of debuginfod client cache (curl not required). Updates to debuginfod.py testing helper script.

Tue, Nov 30, 2:49 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Update HTTPClient::setTimeout to accept std::chrono::milliseconds and use empty vector of URLs when DEBUGINFOD_URLS is not set.

Tue, Nov 30, 12:47 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Change timeouts to be in std::chrono::milliseconds

Tue, Nov 30, 12:37 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

remove extraneous semicolon

Tue, Nov 30, 12:37 PM · Restricted Project
noajshu added a comment to D112751: [llvm] [Support] Add HTTP Client Support library..

Thanks for the tip on the protected dtor! I also changed the setTimeout to use std::chrono::milliseconds following the discussion on D112758.

Tue, Nov 30, 11:44 AM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Change HTTPRequestHandler dtor from virtual to protected.

Tue, Nov 30, 11:43 AM · Restricted Project

Mon, Nov 29

noajshu added inline comments to D112758: [llvm] [Debuginfo] Debuginfod client library..
Mon, Nov 29, 2:40 PM · Restricted Project
noajshu added a reviewer for D112758: [llvm] [Debuginfo] Debuginfod client library.: dblaikie.
Mon, Nov 29, 2:39 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Convert timeout for debuginfod client library to be in std::chrono::milliseconds, miscellaneous typo fixes.

Mon, Nov 29, 2:39 PM · Restricted Project
noajshu added inline comments to D112751: [llvm] [Support] Add HTTP Client Support library..
Mon, Nov 29, 2:12 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

String literal fix for unit test with embedded null characters.

Mon, Nov 29, 2:12 PM · Restricted Project
noajshu added reviewers for D114415: [llvm] [Support] Add HTTP Server Support library.: labath, dblaikie.
Mon, Nov 29, 1:58 PM · Restricted Project
noajshu updated the diff for D114415: [llvm] [Support] Add HTTP Server Support library..

Implement streaming responses and file streaming helper; add unit tests of client timeouts and streaming string / file responses.

Mon, Nov 29, 1:58 PM · Restricted Project

Sun, Nov 28

noajshu updated the diff for D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..

Remove extraneous --keep-section=.notes in symbolizer debuginfod test.

Sun, Nov 28, 10:22 AM · Restricted Project
noajshu added a comment to D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..

@dblaikie thanks for your suggestion to add tests. I just added regression test coverage checking that the symbolizer can query a local debuginfod server (using a python simple http server).
I also added unit tests to D112758 checking that the local cache is used correctly.
I made one small change to the client library, which is to respect the DEBUGINFOD_CACHE_PATH and DEBUGINFOD_TIMEOUT env variables in addition to DEBUGINFOD_URLS.
Please let me know if you have thoughts on the testing strategy or any other feedback on this diff stack (D112751, D112753, D112758, and D113717).
If this looks good I can update D112759 to use this same python test script.
Thanks!

Sun, Nov 28, 10:06 AM · Restricted Project
noajshu updated the diff for D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..

Add lit end-to-end tests of symbolizer debuginfod client support.

Sun, Nov 28, 9:57 AM · Restricted Project
noajshu updated the diff for D112759: [llvm] [Debuginfo] Add llvm-debuginfod-find tool and end-to-end-tests..

Add more help info for client tool and update lit tests.

Sun, Nov 28, 9:01 AM · Restricted Project
noajshu updated the diff for D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..

Undo accidental diff update (sorry)

Sun, Nov 28, 9:01 AM · Restricted Project
noajshu updated the diff for D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..

Add more help info for client tool and update lit tests.

Sun, Nov 28, 9:01 AM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Update to use DEBUGINFOD_TIMEOUT and DEBUGINFOD_CACHE_PATH env vars and add unit tests for cache hit / miss.

Sun, Nov 28, 8:59 AM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Add implementation of HTTPClient::setTimeout

Sun, Nov 28, 8:51 AM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Add HTTPClient::setTimeout method.

Sun, Nov 28, 8:50 AM · Restricted Project

Wed, Nov 24

noajshu abandoned D111252: [llvm] [Support] [Debuginfo] Add http and debuginfod client libraries and llvm-debuginfod-find tool.

Abandoning due to split into separate patches.

Wed, Nov 24, 12:38 PM · Restricted Project

Tue, Nov 23

noajshu retitled D114415: [llvm] [Support] Add HTTP Server Support library. from [llvm] [Support] (WIP) Add HTTP Client Support library. to [llvm] [Support] (WIP) Add HTTP Server Support library..
Tue, Nov 23, 4:45 PM · Restricted Project
noajshu added inline comments to D114415: [llvm] [Support] Add HTTP Server Support library..
Tue, Nov 23, 4:05 PM · Restricted Project
noajshu updated the diff for D114415: [llvm] [Support] Add HTTP Server Support library..

Incorporate feedback, refactor, add unit tests, and rebase against D113218.

Tue, Nov 23, 4:00 PM · Restricted Project
noajshu added inline comments to D113218: [llvm] [Debuginfo] Add cpp-httplib optional dependency..
Tue, Nov 23, 3:57 PM · Restricted Project
noajshu updated the diff for D113218: [llvm] [Debuginfo] Add cpp-httplib optional dependency..

Change LLVM_ENABLE_CPP_HTTPLIB -> LLVM_ENABLE_HTTPLIB and remove redundant use of check_cxx_symbol_exists.

Tue, Nov 23, 3:56 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Rebase against D112751.

Tue, Nov 23, 3:47 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Small style/formatting update.

Tue, Nov 23, 3:46 PM · Restricted Project

Mon, Nov 22

noajshu added a reviewer for D114415: [llvm] [Support] Add HTTP Server Support library.: phosek.
Mon, Nov 22, 9:48 PM · Restricted Project
noajshu requested review of D114415: [llvm] [Support] Add HTTP Server Support library..
Mon, Nov 22, 9:47 PM · Restricted Project
noajshu updated the diff for D113218: [llvm] [Debuginfo] Add cpp-httplib optional dependency..

Add #cmakedefine for LLVM_ENABLE_CPP_HTTPLIB

Mon, Nov 22, 5:11 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Rename unit tests and add additional test.

Mon, Nov 22, 5:04 PM · Restricted Project

Sun, Nov 21

noajshu added a reviewer for D113218: [llvm] [Debuginfo] Add cpp-httplib optional dependency.: phosek.
Sun, Nov 21, 11:46 PM · Restricted Project
noajshu updated the diff for D113218: [llvm] [Debuginfo] Add cpp-httplib optional dependency..

Clean up old cmake comments.

Sun, Nov 21, 11:45 PM · Restricted Project
noajshu updated the diff for D112759: [llvm] [Debuginfo] Add llvm-debuginfod-find tool and end-to-end-tests..

Build llvm-debuginfod-find even if curl is disabled. HTTP fetch will be a no-op.

Sun, Nov 21, 11:42 PM · Restricted Project
noajshu updated the diff for D112759: [llvm] [Debuginfo] Add llvm-debuginfod-find tool and end-to-end-tests..

Use latest debuginfod client library (D112758).
Also condition debuginfod-find lit test execution on availability of libcurl.

Sun, Nov 21, 11:21 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Introduce BuildIDRef and enable custom cache directory.

Sun, Nov 21, 11:18 PM · Restricted Project

Fri, Nov 19

noajshu updated the diff for D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..

Remove unnecessary buildIDToString call due to updates to D112758.

Fri, Nov 19, 4:02 PM · Restricted Project
noajshu added inline comments to D112758: [llvm] [Debuginfo] Debuginfod client library..
Fri, Nov 19, 2:35 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Add a typedef ArrayRef<uint8_t> BuildID; and change external API of debuginfod library to require. Also remove unnecessary const qualifiers from args.

Fri, Nov 19, 2:35 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

All return paths from Curl-enabled HTTPClient::perform after initialization of CurlHTTPRequest pass back the CurlRequest.ErrorState so it gets checked.

Fri, Nov 19, 12:14 PM · Restricted Project

Thu, Nov 18

noajshu added inline comments to D112753: [llvm] [Support] Add CURL HTTP Client..
Thu, Nov 18, 10:20 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Remove unnecessary checks of isAvailable before global init/deinit of HTTP client.
Also only define IsInitialized state for the curl client implementation enabled by -DLLVM_ENABLE_CURL, as it is not needed for the unimplemented client.

Thu, Nov 18, 10:17 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Remove unnecessary IsInitialized variable. Also remove some const qualifiers and replace empty ctor/dtor with =default

Thu, Nov 18, 9:52 PM · Restricted Project

Thu, Nov 11

noajshu added a comment to D112758: [llvm] [Debuginfo] Debuginfod client library..

I integrated the client library into llvm-symbolizer (D113717) and found that a lot of boilerplate was required. So I refactored the interface to make it easier to use.
Now all the functionality is in standalone functions. These would be easy to wrap in an object oriented interface similar to the SymbolServer used in LLDB.

Thu, Nov 11, 2:56 PM · Restricted Project
noajshu added reviewers for D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer.: phosek, labath.
Thu, Nov 11, 2:35 PM · Restricted Project
noajshu requested review of D113717: [Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer..
Thu, Nov 11, 2:33 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Refactor and add several convenience functions.

Thu, Nov 11, 2:28 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Add cmakedefine for LLVM_ENABLE_CURL.

Thu, Nov 11, 1:31 PM · Restricted Project

Wed, Nov 10

noajshu added inline comments to D112753: [llvm] [Support] Add CURL HTTP Client..
Wed, Nov 10, 8:26 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Invoke Curl global init / deinit from InitLLVM's ctor / dtor.

Wed, Nov 10, 12:44 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Perform global curl (de)initialization in static member functions of HTTPClient.

Wed, Nov 10, 12:34 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Move global curl initialization / cleanup to static HTTPClient::initialize / HTTPClient::cleanup.

Wed, Nov 10, 11:27 AM · Restricted Project

Tue, Nov 9

noajshu added a comment to D112751: [llvm] [Support] Add HTTP Client Support library..

Thanks for the comments @dblaikie! I've converted to StringRef parameters throughout.

Tue, Nov 9, 9:50 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Respond to feedback from @dblaikie.

Tue, Nov 9, 9:50 PM · Restricted Project
noajshu added inline comments to D112753: [llvm] [Support] Add CURL HTTP Client..
Tue, Nov 9, 8:37 PM · Restricted Project
noajshu added inline comments to D112753: [llvm] [Support] Add CURL HTTP Client..
Tue, Nov 9, 10:07 AM · Restricted Project

Mon, Nov 8

noajshu added inline comments to D112753: [llvm] [Support] Add CURL HTTP Client..
Mon, Nov 8, 10:02 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Remove extraneous #define DEBUG_TYPE

Mon, Nov 8, 7:27 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Default build with libcurl to "ON".
Several style / commenting changes.

Mon, Nov 8, 7:26 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Final style updates.

Mon, Nov 8, 12:50 PM · Restricted Project

Fri, Nov 5

noajshu added a comment to D112751: [llvm] [Support] Add HTTP Client Support library..

I think this is as good as it can get. What you do after that -- I don't know.

It wasn't clear to me whether you forgot about the mockHTTPClientBrokenConnectionTest part, or chose not to do that, but I added an additional comment to describe how I would do this.

Fri, Nov 5, 3:17 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Rebase against D112751

Fri, Nov 5, 3:15 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Make HTTPClient::isAvailable static.

Fri, Nov 5, 3:04 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

nit, improve comment

Fri, Nov 5, 2:13 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Make perform(Request, Handler) non-virtual, adopting D112753's convention for HTTPClient implementation.

Fri, Nov 5, 2:08 PM · Restricted Project

Thu, Nov 4

noajshu requested review of D113218: [llvm] [Debuginfo] Add cpp-httplib optional dependency..
Thu, Nov 4, 3:13 PM · Restricted Project

Wed, Nov 3

noajshu added a comment to D112753: [llvm] [Support] Add CURL HTTP Client..

If we do want to merge the CulrHTTPClient into the base HTTPClient so that the default class just uses curl, what's the preferable way to do this? One option is just to move all code in CurlHTTPClient.cpp into HTTPClient.cpp, wrapping it in a #ifdef LLVM_ENABLE_CURL.

I'm not aware of an exact precedent (due to this introducing a class instead of a bunch of free functions, etc.), but if I try to apply what happens with other external dependencies (see e.g. Compression.h) I get a static bool (CURL)HTTPClient::isAvailable() function, and an llvm_unreachable inside all of the member functions (when curl is unavailable).

Wed, Nov 3, 8:13 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Use LLVM_ENABLE_CURL to decide which implementation is used for HTTPClient.

Wed, Nov 3, 8:12 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Fix backslashes on windows.

Wed, Nov 3, 7:34 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..
Wed, Nov 3, 6:53 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Avoid polluting namespace with top-level typedef.
Pass HTTPRequest by const reference.

Wed, Nov 3, 6:48 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Address final comments.

Wed, Nov 3, 4:58 PM · Restricted Project
noajshu updated the diff for D113080: [Support] Improve Caching conformance with Support library behavior.

Rebase against main.

Wed, Nov 3, 2:55 PM · Restricted Project, Restricted Project, Restricted Project
noajshu added a comment to rGe678c5117710: [Support][ThinLTO] Move ThinLTO caching to LLVM Support library.

This is really cool, thanks for generalizing this. That said, i'd love for you to continue to work on this to make it work more like the existing LLVM support libraries (e.g. not crashing the program on error).

Wed, Nov 3, 12:00 PM
noajshu added reviewers for D113080: [Support] Improve Caching conformance with Support library behavior: mcgrathr, phosek.
Wed, Nov 3, 11:42 AM · Restricted Project, Restricted Project, Restricted Project
noajshu updated the diff for D113080: [Support] Improve Caching conformance with Support library behavior.

Improve error handling in Caching support library.
Most of the functions now return Expected<>, except for the non-trivial destructor of CacheStream.

Wed, Nov 3, 11:42 AM · Restricted Project, Restricted Project, Restricted Project

Tue, Nov 2

noajshu updated the summary of D113080: [Support] Improve Caching conformance with Support library behavior.
Tue, Nov 2, 10:22 PM · Restricted Project, Restricted Project, Restricted Project
noajshu requested review of D113080: [Support] Improve Caching conformance with Support library behavior.
Tue, Nov 2, 10:21 PM · Restricted Project, Restricted Project, Restricted Project
noajshu added a reviewer for D112759: [llvm] [Debuginfo] Add llvm-debuginfod-find tool and end-to-end-tests.: labath.
Tue, Nov 2, 8:03 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Clean up unrelated changes.

Tue, Nov 2, 8:02 PM · Restricted Project
noajshu updated the diff for D112759: [llvm] [Debuginfo] Add llvm-debuginfod-find tool and end-to-end-tests..

Clean up unrelated changes.

Tue, Nov 2, 8:01 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

move CURL cmake option update to D112753

Tue, Nov 2, 7:55 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Move added Curl cmake var from D112758 to D112753.

Tue, Nov 2, 7:51 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

remove extraneous files related to debuginfod-find tool

Tue, Nov 2, 5:43 PM · Restricted Project
noajshu updated the diff for D112758: [llvm] [Debuginfo] Debuginfod client library..

Update for refactored HTTP client architecture.

Tue, Nov 2, 5:18 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

replace curlSetOpt with curl_easy_setopt

Tue, Nov 2, 5:05 PM · Restricted Project
noajshu added a comment to D112753: [llvm] [Support] Add CURL HTTP Client..

If we do want to merge the CulrHTTPClient into the base HTTPClient so that the default class just uses curl, what's the preferable way to do this? One option is just to move all code in CurlHTTPClient.cpp into HTTPClient.cpp, wrapping it in a #ifdef LLVM_ENABLE_CURL.

Tue, Nov 2, 4:31 PM · Restricted Project
noajshu updated the diff for D112753: [llvm] [Support] Add CURL HTTP Client..

Implement CurlRequest error state, switch Handler.handle* methods to return Errors.
Rebase on top of D112751.

Tue, Nov 2, 4:31 PM · Restricted Project
noajshu updated the diff for D112751: [llvm] [Support] Add HTTP Client Support library..

Update error handling of HTTPResponseHandler and HTTPClient

Tue, Nov 2, 2:55 PM · Restricted Project
noajshu added a comment to D112751: [llvm] [Support] Add HTTP Client Support library..

@labath I completely agree the new error handling is awkward and I prefer your proposed Error handling between the ResponseHandler and the Client. I'll change all three handle*() methods to return Error (then convert it to 0 for curl in the client + hook functions)

Tue, Nov 2, 12:42 PM · Restricted Project