Commit Graph

670 Commits

Author SHA1 Message Date
eb2fe668df Minor changes 2024-06-29 13:48:08 -07:00
16a95e0d96 Implemented a "exit please" command
`render_list -S/--stop` will ask renderd to stop all processing and exit.
2024-06-29 13:48:08 -07:00
63799791aa Quick and dirty visualization of the memory usage
Alsok, building all the code into separate folders.. does this make a difference... no, doesn't look like it.
2024-06-29 13:48:08 -07:00
6995d7bf47 Comparing 'glib' vs 'jemalloc' vs 'tcmalloc'
... but somehow they all behave "badly", as in they max out memory at 15GB and stay there. I was expecting glib to perform like this, but not jemallor nor tcmalloc.
2024-06-29 13:48:08 -07:00
3120d0b761 Fix memory leak during configuration parsing (#455)
The memory allocated by `strndup` needs to be freed.

The code has also been changed to not lose the allocation pointer and according to the semantics of `strtok_r` explained here:
https://man.freebsd.org/cgi/man.cgi?query=strtok_r

Also improved messaging.

Co-authored-by: Roland Bosa <roland.bosa@gmail.com>
2024-06-29 13:47:17 -07:00
0478a1b761 Allow linking alternate memory management implementations (#454)
With new `CMake CACHE` entry `MALLOC_LIB`, supporting the following values:
* `libc` (default): Use the system's implementation
* `jemalloc`: Use [jemalloc](http://jemalloc.net)
* `mimalloc`: Use [mimalloc](https://github.com/microsoft/mimalloc)
* `tcmalloc`: Use [tcmalloc](https://github.com/google/tcmalloc)

Co-authored-by: Roland Bosa <roland.bosa@gmail.com>
2024-06-28 18:08:49 -07:00
c4e3e6230c Clarify optional libraries and allow optionally disabling them (#453)
`libcurl` & `libcairo` are also optional and their usage can now be optionally disabled (along with `libmemcached` & `librados`.)

* No longer test macOS Autotools building
2024-06-28 13:51:12 -07:00
52e7a10762 Use Mapnik v4.0.0 for Dockerfiles and GitHub Actions (#452) 2024-06-26 16:37:31 -07:00
3612c5f207 Allow overriding Munin script URLs with an environment variable (#420)
* Also allow overriding `RENDERD_STATS` (defaults to `/run/renderd/renderd.stats`)
* Also allow overriding `REPLICATION_STATE` (defaults to `/home/osm/replicate/state.txt`)
2024-06-25 18:27:05 -07:00
344215aa16 Debian Unstable and Ubuntu Devel now default to Mapnik v4.0.0 (#450)
* Fix `Dockerfile`s & `docker-compose.yml` to support this.
* Mark debian:unstable & ubuntu:devel experimental
2024-06-20 18:13:21 -07:00
1309fdc382 Bumped version to 0.8.0 (#448)
In preparation for future release.
v0.8.0-beta
2024-06-19 18:42:39 -07:00
e89046b5ee Also use renderd_config for mod_tile (#440)
Follow-up to #391 & #400
2024-06-19 09:20:50 -07:00
9873dde1e8 Update CentOS Stream build documentation (#444)
After removal of CentOS Stream 8 / CentOS 7 documentation removal.
2024-06-13 15:46:47 -07:00
bc33cf99da Minor fixes (#442)
* `.github/actions/coverage/action.yml`
  * Ignore `unused` errors when excluding coverage directories
* `docs/build/building_on_ubuntu.md`
  * Fix typo
* `src/parameterize_style.cpp`
  * Use `auto` rather than `std::optional<std::string>`/`boost::optional<std::string>`
2024-06-13 11:02:36 -07:00
1f81434203 Move MAPNIK_MAJOR_VERSION checks around (#439) 2024-06-04 20:04:09 -07:00
ba0d2af705 Increase XMLCONFIGS_MAX default from 10 to 100 (#434) 2024-06-04 19:42:31 -07:00
039a30eb62 Remove CentOS Stream 8 & CentOS 7 for CI and documentation (#438)
* Updates are no longer available for CentOS Stream 8 since the end of May 2024
* Updates will cease being available for CentOS 7 at the end of June 2024
2024-06-04 16:10:38 -07:00
1ad41653c7 Remove libm link to mod_tile.so (#435) 2024-06-04 13:39:28 -07:00
b9c048a6ac Support for Mapnik >= 4 no longer using boost:optional (#436) 2024-06-04 13:24:04 -07:00
cbd63598ae Add missing unistd.h inclusion (#437) 2024-06-04 13:01:37 -07:00
c3453bc1e1 Add Ubuntu 24.04 to build pipeline (#431)
_And_:
* Do not report coverage with macOS 12
2024-04-26 10:02:52 -07:00
e1611fc4ce Add Fedora 40 to build pipeline (#430)
_And_:
* Remove Fedora 38
* Fix `openSUSE Leap 15` Docker build's default GCC no longer compiles `Mapnik` latest
  * C++17 is now required, so a newer GCC will be installed
* Fix for coverage capturing with LCOV 2.1
  * Seems to currently only exist on macOS
2024-04-26 09:25:16 -07:00
a23fcf11ed Mapnik v4.0.0 will require C++17 (#429)
a85bc95135
2024-04-21 13:37:57 -07:00
9834df0e38 Fix typo in utils/munin/mod_tile_latency (#428) 2024-04-10 22:19:35 -07:00
78f9b6657f Also process and report coverage from AutoTools-based builds (#425) 2024-04-04 20:22:30 -07:00
0cc76cb72f Cleaning up tests (#424) 2024-03-27 17:58:11 -07:00
7f91d53ec3 Prevent duplicate renderd sections (#421)
In order to remove any confusion if the user has duplicate `renderd` sections in their `renderd.conf` file.

Currently with a configuration like this one:
```ini
[renderd]
pid_file=/run/renderd/renderd.pid
socketname=/run/renderd/renderd.sock
stats_file=/run/renderd/renderd.stats
tile_dir=/var/cache/renderd/tiles

[renderd0]
pid_file=/run/renderd/renderd0.pid
socketname=/run/renderd/renderd0.sock
stats_file=/run/renderd/renderd0.stats
tile_dir=/var/cache/renderd/tiles
```
only the second `renderd` section (`renderd0`) will actually be used.

After this patch is merged, an error message will be shown and the application will exit.
2024-03-24 21:25:57 -07:00
aebb506485 Prevent socketnames in renderd.conf exceeding maximum allowed length (#422)
The maximum allowed length of a socket file name is 108:
https://www4.cs.fau.de/Services/Doc/C/libc.html#SEC189

Exceeding this length will likely lead to difficult to troubleshoot behavior.
2024-03-24 20:55:27 -07:00
2ce51df526 Test error output in catch tests (#419) 2024-03-23 21:58:30 -07:00
743cf651b1 Follow up to #190 for render_list (#417)
* Fixed `render_list` build needs `libm`
* Added tests
* Updated man page
* Created function to set double
* Cleaned up / optimized a bit
* Removed `--dont-render` option
2024-03-21 13:22:02 -07:00
3621428efd Enable rendering between geo-coords instead of tile-numbers (#190)
Instead of giving tile-numbers to render in a specific zoomlevel i wanted to give a gectangle defined by geo-coords and render all zoomlevels at once
2024-03-21 11:53:31 -07:00
2a4532f002 Improve render_expired/render_list test coverage (#415) 2024-03-19 09:15:41 -07:00
3ad89950fc OpenSUSE doesn't seem to report coverage (#414)
Disabling it for now
2024-03-16 19:52:36 -07:00
b7118780dc Added continue-on-error for experimental distros (#413)
So that workflows will still show as passing when issues arise.

* Build & Test
  * debian:unstable
  * fedora:rawhide
  * ubuntu:devel
* Docker Image Build
  * debian-unstable/debian-unstable-autotools
  * fedora-rawhide
  * opensuse-tumbleweed
  * ubuntu-devel/ubuntu-devel-autotools
2024-03-16 16:55:23 -07:00
13a198d06d Updated Docs/Dockerfiles/GitHub actions after switching CMake to relative install paths (#412) 2024-03-16 14:57:19 -07:00
4f04956289 Fix installation when using DESTDIR. (#411)
The Debian package build failed after switching to CMake because it uses `DESTDIR` to install under `debian/tmp`.
2024-03-16 10:01:44 -07:00
21713d0319 Fix/improve X-Forwarded-For/throttling testing (#410)
* Previously it was not actually sending the header
* Now runs in serial, regardless of parallel specification
* Now runs only once, rather than for each map layer

_Also_:
* Removed no-longer used `storage_mutex`
  * Was only used for Apache HTTP Server < v2.4
2024-03-15 10:11:37 -07:00
d67a672750 Add macOS 14 to build and test CI workflow (#409)
Available since January 30th, 2024:
https://github.blog/changelog/2024-01-30-github-actions-macos-14-sonoma-is-now-available/
2024-03-14 13:56:32 -07:00
c3d9bd2d98 CPack Updates (#408)
* Add project description and URL for CPack packaging
* Address cppcheck issues
2024-03-13 22:04:58 -07:00
a404c810b1 Remove support for Apache HTTPD < 2.4 (#407)
* `v2.4` was released in `2012`
* `v2.2` has not been updated since `2017`
2024-03-13 20:46:03 -07:00
d9dbf82524 Add CPack packaging to GitHub Actions (#406) 2024-03-12 22:58:15 -07:00
0aa7607d7b Updates to "full" Docker containers (#404)
* To help with testing rendering with real data and styles
2024-03-08 15:38:46 -07:00
c9e7dd8845 Update man pages for render_expired/render_list (#403)
_Also updated all render\_* apps to_:
* Use `MAX_ZOOM` rather than hard-coded values for `--max-zoom`
* Print `metatile` rather than `meta tile`
* Add missing `--help` output to `render_expired` & `render_list`
* Remove redundant `--help` output from `render_list`
2024-03-08 14:40:06 -07:00
dd90553536 Minor Clean Up of includes and gen_tile.cpp (#402)
_Also_:
* Use `mapnik::freetype_engine::register_fonts` in `gen_tile.cpp` rather than recursing manually
  * Available since `Mapnik` v2 which is no longer supported
2024-03-06 21:18:34 -07:00
5014494191 Fix full Ubuntu map service in docker-compose.yml (#401) 2024-03-05 21:56:10 -07:00
7389b160bf Add renderd_config.c usage into render_* targets (#400)
* Add support for reading `renderd.conf` to `render_expired`
* Add support for reading `renderd.conf` to `render_list`
* Add support for reading `renderd.conf` to `render_old`
* Add support for reading `renderd.conf` to `render_speedtest`
* Move renderd/render_* execution tests to own files
* Reduce variable scope & minor clean up
* Use `stat` rather than `access` to check if file exists
2024-03-04 12:03:16 -07:00
d5534bda27 Adjust sscanf usage in renderd_config.c (#399) 2024-03-03 15:09:46 -07:00
b37cfd9ebb Handle mod_tile not having a valid storage context (causing a segmentation fault) (#398)
This only seems to happen after a delay pool is created (i.e. when `ModTileEnableTileThrottling` is enabled) and is then being manipulated.
2024-03-02 17:44:56 -07:00
2de946dde1 Split up renderd.conf processing by section type (#397) 2024-03-01 20:04:09 -07:00
04a0bf0f09 Fix segmentation fault in modtile.c:delay_allowed (#395) 2024-02-24 19:11:02 -07:00