Issues

Select view

Select search mode

 
31 of 31

Code of CFCs in componentPaths isn't flushed by PagePoolClear() or SystemCacheClear()

Fixed

Description

Code of CFCs in componentPaths isn't flushed by PagePoolClear() or SystemCacheClear(). This makes using the highly-performant "Inspect Templates: Never" setting impractical for many applications. Instead, we must use "Inspect Templates: Once".

To reproduce:
1. Set Inspect Templates to "Never" in Lucee Web Admin.
2. Create the following files:

Application.cfc:

objects/number.cfc:

index.cfm

3. Visit index.cfm. See that it outputs "4".
4. Change the number returned by the get() method in number.cfc to 5.
5. Reload index.cfm. See that it still outputs "4". It should output 5.
6. Reload as many times as you want. Lucee will not pick up the change to number.cfc, even though PagePoolClear() and SystemCacheClear() are being called.

This problem only seems to affect CFCs in the application's componentPath array. A CFC in the same folder as index.cfm will not exhibit the problem.

Environment

Ubuntu 16.04
Apache 2.4

Attachments

1

Details

Assignee

Reporter

Priority

Fix versions

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Sprint

Affects versions

Created 30 July 2018 at 19:56
Updated 21 May 2019 at 13:36
Resolved 20 May 2019 at 15:15

Activity

Show:

Leon Miller-Out21 May 2019 at 13:36

Thanks, ! I’ve verified that this change fixes the bug.

There may be a related regression in version 5.3.3.41. When I run the test twice, immediately after updating to 5.3.3.41, I get this error:

However, if I then restart Lucee. This error goes away. I’m not sure how to handle this, if at all. In my opinion, having to restart once after this upgrade is worth having a PagePoolClear() that really works.

Michael Offner20 August 2018 at 14:34

i do not assume that this is the case here, i simply want to point out this piece of fact.

Zac Spitzer9 August 2018 at 10:36

I think that might be a useful data point...

I just attached a copy of the test case as a zip file so it's easier to reproduce

Leon Miller-Out8 August 2018 at 14:47

I don't believe I have any lingering references to number.cfc. I've also tried with a separate flush.cfm script that just flushes the caches and that doesn't work either.

restarting the web context might be an workaround, but only if it doesn't result in many seconds of downtime.

Another symptom of the root problem may be that number.cfc isn't in the "page pool", as evidenced by dumping out PagePoolList() and seeing that it doesn't show up in that output. I'm not sure if that's a useful data point.

Flag notifications