Adam Cameron
-nginx docker images.
On 5.3.9.166 everything works as expected. On 5.4.1.8, <cfquery> reqs are just sitting there doing nowt until the request times out.
On dev we're using the Docker network, and that was fine on 5.4.1.8; I've deployed to one of our prod boxes, where the DB is across the host network, and <cfquey> and its ilk suddenly just hang.
The only change is 5.3.9.166 to 5.4.1.8.
I do not currently have much else to go on other than that; and haven't 100% tied it down to this (although I'm at about 95% currently)zackster
07/25/2023, 4:09 PMjamiejackson
07/25/2023, 6:28 PMAdam Cameron
Adam Cameron
Adam Cameron
/opt/lucee/server/lucee-server/bundles/com.mysql.cj-8.0.33.jar and the 5.3.9.166 one has
/opt/lucee/server/lucee-server/bundles/com.mysql.cj-8.0.19.jar Can I safely stick the latter in in place of the former, and expect it to work?
(I will just try in the meantime, in case the answer is "yeah, it should do")zackster
07/28/2023, 9:40 AMAdam Cameron
Adam Cameron
zackster
07/28/2023, 9:46 AMAdam Cameron
this.datasources[server.system.environment.app_name] = {
class: 'com.mysql.cj.jdbc.Driver',
bundleName: 'com.mysql.cj',
bundleVersion: '8.0.19',
Does that mean that we would be using the old drivers even if Lucee itself has upgraded to new ones?Adam Cameron
Adam Cameron
Adam Cameron
zackster
07/28/2023, 9:53 AMlucee.enable.bundle.download=falseAdam Cameron
Adam Cameron
zackster
07/28/2023, 9:57 AMAdam Cameron
Adam Cameron
Adam Cameron
zackster
07/28/2023, 10:00 AMAdam Cameron
Adam Cameron
Adam Cameron
zackster
07/28/2023, 10:02 AMAdam Cameron
Adam Cameron
class: 'com.mysql.cj.jdbc.Driver',
bundleName: 'com.mysql.cj',
bundleVersion: '8.0.19',
Can I just do something like this:
driver: 'mysql'
?zackster
07/28/2023, 10:04 AMzackster
07/28/2023, 10:04 AMAdam Cameron
Adam Cameron
Adam Cameron
zackster
07/28/2023, 10:05 AMAdam Cameron
Adam Cameron
Adam Cameron
bundleName? For one thing, it's repeating what's in the driver line anyhow, so I... suspect... there's not a lot of optionality there anyhow?Adam Cameron
it does log, now i know there's a problem i can fix itThere is nothing in any log file that indicates "I needed to phone home but could not". All I get is the exception from the request timeout in exception.log, and another similar entry in requestimeout.log
Adam Cameron
Adam Cameron
Adam Cameron
Do I need to even specify theLooks like it's also surplus to requirement.?bundleName
zackster
07/28/2023, 11:41 AMzackster
07/28/2023, 11:42 AM<cfscript>
ds = {
class: "com.mysql.cj.jdbc.Driver",
bundleName: "com.mysql.cj",
bundleVersion: "8.0.35",
connectionString: "jdbc:<mysql://localhost:33306/preside-demo?characterEncoding=UTF-8&serverTimezone=US/Eastern&maxReconnects=3>",
username: "preside-demo",
password: "encrypted:xyz",
// optional settings
connectionLimit:-1, // default:-1
liveTimeout:15, // default: -1; unit: minutes
alwaysSetTimeout:true, // default: false
validate:false, // default: false
};
</cfscript>
<cfquery datasource="#ds#" name="zac">
select 1
</cfquery>zackster
07/28/2023, 11:43 AMzackster
07/28/2023, 11:45 AMat lucee.loader.engine.CFMLEngineFactory.downloadBundle(CFMLEngineFactory.java:726)
at lucee.runtime.osgi.OSGiUtil._loadBundle(OSGiUtil.java:633)zackster
07/28/2023, 11:47 AMzackster
07/28/2023, 11:50 AMAdam Cameron
Adam Cameron
<cfquery> tagzackster
07/28/2023, 11:53 AMAdam Cameron
Adam Cameron
zackster
07/28/2023, 11:59 AMAdam Cameron
zackster
07/28/2023, 12:01 PMzackster
07/28/2023, 12:02 PMAdam Cameron
yes, otherwise in place upgrades don't workAt a superficial level, that seems like bad coupling. There's quite a difference between "someone clicking a button to opt-in to a download", and "Lucee will do stuff by itself in the background without being asked"
zackster
07/28/2023, 12:07 PMAdam Cameron
zackster
07/28/2023, 12:08 PMAdam Cameron
zackster
07/28/2023, 12:48 PMzackster
07/28/2023, 12:49 PMAdam Cameron
that the enable bundle download directive
https://docs.lucee.org/guides/Various/system-properties.html#lucee_enable_bundle_downloadluceeenablebundledownloadA:
Is it on by default unless otherwise set off?Z:
yes, otherwise in place upgrades don't workA:
At a superficial level, that seems like bad coupling. There's quite a difference between "someone clicking a button to opt-in to a download", and "Lucee will do stuff by itself in the background without being asked"To try again: * someone clicking a "please update Lucee" is intrinsically opting-in to downloading taking place. They've consented. Do it. * Lucee magically and invisibly deciding to download new libraries without being asked. Those are two completely different things. The only commonality is "stuff gets downloaded". They should not be controlled by the same setting. It is entirely realistic to allow an active-opt-in inplace upgrade, whilst at the same time prohibiting Lucee from doing something it's not been asked to do.
zackster
07/28/2023, 1:14 PMzackster
07/28/2023, 1:17 PMAdam Cameron
box install is something I opt in to do as well! I need to type in box install [enter]!
LUCEE_EXTENSIONS is also opt-in, as I need to give a list of values. And by doing that I am opting-in to the documented process taking place.
What the current situation is like with these drivers is like if I didn't set a value for LUCEE_EXTENSIONS and Lucee just decided to go get any extension on the fly just cos my code happened to reference it. Instead of erroring-out and going "you need to install the extension to use it".
All the examples you are giving require an opt-in. This driver download thing requires me to opt-out, and it sounds like if I do opt-out, it disables a bunch of unrelated stuff too?jamiejackson
07/28/2023, 3:36 PMjamiejackson
07/28/2023, 3:38 PMzackster
07/28/2023, 3:48 PMzackster
07/28/2023, 3:48 PMjamiejackson
07/28/2023, 3:50 PMDockerfile . i feel like there ought to be a better way. (i stand by the notion that installations should happen at build-time.)zackster
07/28/2023, 4:22 PMzackster
07/28/2023, 4:23 PMAdam Cameron