I realized that it happens immediatly when I reload my cluster settings via pg_ctl reload. Immediatly raised the curremt message for every database in my cluster :
2018-07-11 17:17:56 IDTjiradbuserjiradbERROR: invalid value for parameter "client_encoding": "ISO_8859_8"
It happens to all the sessions I have to all the databases. In other words, different apps are connected to different databases but I still keep getting those errors. I queried pg_shadow and I didnt see that a specific user has a different client_encoding configured. Moreover, the client_encoding is set to default in postgresql.conf.
What else can I check ? I'm trying to check the if the problem is in the pool as tatsuo suggested but is there anything else that I can check ?
Mariel Cherkassky <mariel.cherkassky@gmail.com> writes: > My postgresql env consist of 3 nodes(9.6 version) and 2 pgpool`s that acts > as a load balancer. I'm using postgresql as a database for the next apps : > bitbucket,jira and crowd. However, I'm getting alot of errors in the pgpool > log about the client_encoding for every connection that comes from one of > those application :
> invalid value for parameter "client_encoding": "ISO_8859_8" > Cannot change "client_encoding" now.
[ digs around ... ] The "Cannot change" bit seems to indicate that this error is coming from check_client_encoding(), and it's failing because it cannot change client_encoding for an existing session outside a transaction. The comment about it is:
* ... This would only happen if someone tries to change * client_encoding in postgresql.conf and then SIGHUP existing sessions. * It seems like a bad idea for client_encoding to change that way anyhow, * so we don't go out of our way to support it.
I'm not very sure how you'd get into a state where this was affecting new sessions as well as pre-existing ones, or why it would affect only some sessions. Maybe the latter could be explained if all but this one app explicitly set client_encoding for themselves.
Anyway, I think it's impossible for the client app to trigger this by itself. There must be some server-side source of this value, if not postgresql.conf then maybe ALTER DATABASE/ROLE SET?