Comments (4)
from pound.
from pound.
I need to have the content of /etc/pound.cfg to debug this.
It happens with any content.
If there are errors it will tell the errors and segfault after that.
It also happens with a totally empty pound.cfg, or with just some basic lines, such as:
# Start pound as User with Group
User "pound"
Group "pound"
Threads 512
LogLevel 3
Alive 5
At first I thought the same, that it is the content of the config file, and I took out content out of it, step by step, until it was empty. Everytime there was the same segmentation fault.
I think it has to do with that the directory /usr/local/etc
does not exist yet in a standard OpenSUSE, until some custom software creates it.
You might be able to reproduce by simply deleting the directory at /usr/local/etc and then restarting pound (or even just checking a configuration file, which can be /etc/pound.cfg or anywhere).
This is the line 5134 in config.c which valgrind claims would be causing the segfault:
if (include_wd->refcount > 0 && include_wd->fd == AT_FDCWD)
which in a very quick look seems to access a working directory.
So I checked what happens if I delete the empty /usr/local/etc/pound.cfg
, and still no segfault.
But if I remove the directory /usr/local/etc
then there it is again, the segfault.
And if I create that directory again, just it, no content, that's enough, no more segfault.
So that directory should get created by install, if needed, or better checked in a way that there is no segfault when it does not exist.
Also, thanks to keep pound alive, I use it a lot, and I love the new features you added!
from pound.
Until then, you can use the
-Winclude-dir=DIR
option to work over the bug. E.g. set-Winclude-dir=/etc
to use/etc
as a base directory for all relative file names in your configuration, or-Wno-include-dir
, to use current working directory instead. See the manpage for details.
And, while at it, a minor question: you seem to use/etc/pound.cfg
as your configuration file. Why not compile pound to use that directory by default, then? E.g.:./configure --sysconfdir=/etc
?
Thanks, yes, /etc/pound.cfg
has always been the default configuration location on OpenSUSE and Centos, when installing the pound the distribution offered. That's the main reason I use /etc/pound.cfg
.
./configure --sysconfdir=/etc
seems to be what I need, I will use that in future.
Thanks!
from pound.
Related Issues (20)
- Multiple "Can't read BIO_f_base64" in log HOT 2
- Create release of prerelease versions? HOT 3
- Add to homebrew? HOT 10
- Backed does not come back from dead status HOT 28
- Pound forwards requests with multiple `Transfer-Encoding: chunked` headers HOT 2
- Pound forwards chunk sizes prefixed with `0x`, `-`, and `+` HOT 1
- Pound forwards requests with invalid whitespace around chunk sizes HOT 1
- openssl 0A000438 error and Caddy servers HOT 8
- [FR] response headers modification HOT 3
- Pound forwards messages containing unrecognized transfer codings
- Pound forwards requests containing both `Transfer-Encoding` and `Content-Length` headers
- "error copy client cont" error HOT 8
- Bug in chunked message body decoding causes malformed requests to be forwarded HOT 5
- Unable to use the same backend for different virtual hosts HOT 3
- Debian package Reintroducing ? HOT 4
- pound on FreeBSD exits on signal 11 and reports out of memory HOT 5
- Heap buffer overflow in HTTP response parser
- Pound 4.12 segfaults with libpcre2 HOT 10
- Different behaviour (or bug) in URL parsing between Pound 2.8 and 4.12 HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pound.