| 2020-03-03 Aaron Merey <amerey@redhat.com> | |
| * debuginfod-client.c (debuginfod_query_server): Update | |
| cache_path even when new default path already exists. | |
| 2020-02-27 Aaron Merey <amerey@redhat.com> | |
| * debuginfod-client.c (xalloc_str): New macro. Call | |
| asprintf with error checking. | |
| (debuginfod_query_server): Use XDG_CACHE_HOME as a default | |
| cache location if it is set. Replace snprintf with xalloc_str. | |
| 2020-02-26 Konrad Kleine <kkleine@redhat.com> | |
| * debuginfod-client.c (debuginfod_query_server): Handle curl's | |
| response code correctly when DEBUGINFOD_URLS begin with file:// | |
| 2020-02-25 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (parse_opt): Treat -R as if -Z.rpm . | |
| 2020-02-25 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (fdcache_prefetch): New parameter. | |
| (parse_opt): Parse it. | |
| (main): Default it. | |
| (fdcache::fd_size_mb): Change to double for accuracy. | |
| (fdcache::probe): New function. | |
| (fdcache::intern): New option to intern at end of LRU. | |
| (fdcache::lookup): Clean fdcache. | |
| (handle_buildid_r_match): Implement multi-stage archive | |
| parsing, with optional prefetching of extracted contents | |
| into the fdcache. | |
| 2020-02-19 Aaron Merey <amerey@redhat.com> | |
| * debuginfod-client.c (debuginfod_clean_cache): Restrict | |
| cleanup to client-pattern files. | |
| 2020-02-05 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (argp options): Add -Z option. | |
| (canonicalized_archive_entry_pathname): New function for | |
| distro-agnostic file name matching/storage. | |
| 2020-01-22 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (dwarf_extract_source_paths): Don't print | |
| "skipping hat" messages at verbosity <=3, too noisy. | |
| 2020-01-19 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (scanq): Rework to let groomer/fts threads | |
| synchronize with an empty workqueue, and lock out workqueue | |
| consumers. | |
| (thread_groom): Adopt new scanq idle APIs to lock out scanners. | |
| (thread_main_fts_source_paths): Adopt new scanq idler API to | |
| avoid being restarted while scanners haven't even finished yet. | |
| (thread_main_*): Increment thread_work_total metric only after | |
| a work cycle is completed, not when it begins. | |
| 2020-01-18 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (thread_main_scanner): Handle empty source_paths[]. | |
| 2020-01-11 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (libarchive_fdcache): New class/facility to own a | |
| cache of temporary files that were previously extracted from an | |
| archive. If only it could store just unlinked fd's instead of | |
| filenames. | |
| (handle_buildid_r_match): Use it to answer dwz/altdebug and webapi | |
| requests. | |
| (groom): Clean it. | |
| (main): Initialize the cache control parameters from heuristics. | |
| Use a consistent tmpdir for these and tmp files elsewhere. | |
| 2020-01-11 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (conninfo): Print User-Agent and X-Forwarded-For | |
| request headers, after mild safety-censorship (for easier machine | |
| processing). | |
| 2020-01-11 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx: Rework threading model. | |
| (workq): New class for concurrent work-queue. | |
| (semaphore): Removed class, now unused. | |
| (scan_source_file_path): Rework into ... | |
| (scan_source_file): New function. | |
| (thread_main_scan_source_file_path): Nuke. | |
| (scan_source_archive_path): Rework into ... | |
| (scan_archive_file): New function. | |
| (thread_main_scanner): New function for scanner threads. | |
| (thread_main_fts_source_paths): New function for traversal thread. | |
| (scan_source_paths): ... doing this. | |
| (thread_groom): Tweak metrics for consistency. | |
| (main): Start 1 traversal and N scanner threads if needed. | |
| 2019-01-02 Mark Wielaard <mark@klomp.org> | |
| * debuginfod.cxx (default_connect_timeout): Removed. | |
| (default_transfer_timeout): Removed. | |
| (default_timeout): New. Default to 90 seconds. | |
| (debuginfod_query_server): Parse server_timeout_envvar as one number. | |
| Set as CURLOPT_LOW_SPEED_TIME, with CURL_OPT_LOW_SPEED_LIMITE as 100K. | |
| 2020-01-09 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod-client.c (add_extra_headers): New function, | |
| based on mjw's draft. | |
| (debuginfod_query_server): Call it. | |
| 2019-12-22 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (*_rpm_*): Rename to *_archive_* throughout. | |
| (scan_archives): New read-mostly global to identify archive | |
| file extensions and corresponding extractor commands. | |
| (parse_opt): Handle new -U flag. | |
| 2019-12-19 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod-client.c (default_progressfn): New function. | |
| (debuginfod_begin): Use it if $DEBUGINFOD_PROGRESS set. | |
| (server_timeout): Bump to 30 seconds. | |
| (debuginfod_query_server): Call progressfn -after- rather than | |
| before curl ops, to make it likely that a successful transfer | |
| results in final a=b call. Tweak cleanup sequence. | |
| * debuginfod.h: Document $DEBUGINFOD_PROGRESS name. | |
| 2019-12-09 Mark Wielaard <mark@klomp.org> | |
| * debuginfod-client.c (debuginfod_query_server): Check | |
| server_urls_envvar early. | |
| 2019-12-03 Mark Wielaard <mark@klomp.org> | |
| * debuginfod-client.c (debuginfod_query_server): Use separate | |
| local variables for CURLcode curl_res and CURLMcode curlm_res. | |
| 2019-11-26 Mark Wielaard <mark@klomp.org> | |
| * Makefile.am (BUILD_STATIC): Add needed libraries for libdw and | |
| libdebuginfod. | |
| 2019-11-25 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx (groom): Add a sqlite3_db_release_memory() | |
| at the end of periodic grooming to try to shrink the process. | |
| 2019-11-24 Mark Wielaard <mark@klomp.org> | |
| * debuginfod.cxx (test_webapi_sleep): Removed. | |
| (handler_cb): Don't check test_webapi_sleep and sleep. | |
| (main): Don't set test_webapi_sleep. | |
| 2019-11-24 Mark Wielaard <mark@klomp.org> | |
| * debuginfod.cxx (add_metric): New function. | |
| (scan_source_file_path): Record metrics for | |
| found_executable_total, found_debuginfo_total and | |
| found_sourcerefs_total. | |
| (scan_source_rpm_path): Likewise. | |
| 2019-11-07 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx: Add /metrics endpoint. Add numerous | |
| calls to new functions inc_metric/set_metric to populate | |
| threadsafe map containing stats. Add http content-type | |
| response headers throughout. | |
| (thread_main_*): Simplify counter/timer flow. | |
| (main): Reorder web service shutdown to leave http running | |
| as long as possible. | |
| * debuginfod.8: Document it, add security caution. | |
| 2019-11-06 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx: Add new -L (symlink-following) mode. | |
| * debuginfod.8: Document it. | |
| 2019-11-04 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfo-client.c (debuginfod_set_progressfn): New function | |
| for progress/interrupt callback. | |
| (debuginfod_clean_cache, debuginfod_query_server): Call it. | |
| * debuginfo.h: Declare it. | |
| * debuginfod_set_progressfn.3, *_find_debuginfo.3: Document it. | |
| * Makefile.am: Install it. | |
| * libdebuginfod.map: Export it all under ELFUTILS_0.178 symversion. | |
| * debuginfod-find.c: Add -v option to activate progress cb. | |
| * debuginfod-find.1: Document it. | |
| * debuginfod.cxx: Add $DEBUGINFOD_TEST_WEBAPI_SLEEP env var | |
| to insert sleep in webapi callbacks, to help manual testing. | |
| 2019-10-28 Frank Ch. Eigler <fche@redhat.com> | |
| * debuginfod.cxx: New file: debuginfod server. | |
| * debuginfod.8: New file: man page. | |
| * Makefile.am: Build it. | |
| 2019-10-28 Aaron Merey <amerey@redhat.com> | |
| * debuginfod-client.c: New file: debuginfod client library. | |
| * debuginfod.h: New file: header for same. | |
| * libdebuginfod.map: New file: govern its solib exports. | |
| * debuginfod-find.c: New file: command line frontend. | |
| * debuginfod-find.1, debuginfod_find_source.3, | |
| debuginfod_find_executable.3, debuginfod_find_debuginfo.3: | |
| New man pages. |