Re: [coldbox:17391] [wirebox-1.5+] Error related to system/aop/tmp files

179 views
Skip to first unread message

Sana Ullah

unread,
Jan 24, 2013, 12:29:07 PM1/24/13
to col...@googlegroups.com
Hi Wade,

This directory should have writeable permission  /system/aop/tmp/  "/tmp"

Thanks

On Thu, Jan 24, 2013 at 4:22 PM, Wade Vogt <wade...@gmail.com> wrote:
I've been seeing the following error pop-up from time to time and have not been able to track down a cause. It happens with wirebox 1.5 and 1.6, but less frequently with 1.5

Type: missinginclude

Message: Page /system/aop/tmp/b504e313-3c99-4283-a662-77148de68836.cfm [/opt/cflib/wirebox_1.5.0/coldbox/system/aop/tmp/b504e313-3c99-4283-a662-77148de68836.cfm] not found

I'm running Railo 3.3.1, Tomcat 7, Java 7, on Amazon Linux EC2. Restarting Tomcat will fix the issue for a period of time, but then it shows up again at a seemingly random time. I am using Wirebox on it's own to serve as my DI/AOP engine. I don't have any other ColdBox solutions in use.

The top of the stack trace looks like this:

Page /system/aop/tmp/b504e313-3c99-4283-a662-77148de68836.cfm [/opt/cflib/wirebox_1.5.0/coldbox/system/aop/tmp/b504e313-3c99-4283-a662-77148de68836.cfm] not found at railo.runtime.PageSourceImpl.loadPage(PageSourceImpl.java:140):140 at railo.runtime.type.util.ComponentUtil.getPage(ComponentUtil.java:663):663 at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:214):214 at railo.runtime.type.UDFImpl._call(UDFImpl.java:418):418 at railo.runtime.type.UDFImpl.call(UDFImpl.java:383):383 at railo.runtime.ComponentImpl._call(ComponentImpl.java:609):609 at railo.runtime.ComponentImpl._call(ComponentImpl.java:496):496 at railo.runtime.ComponentImpl.call(ComponentImpl.java:1794):1794 at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:733):733 at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1444):1444 



--
--
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
To post to this group, send email to col...@googlegroups.com
To unsubscribe from this group, send email to coldbox-u...@googlegroups.com
For more options, visit this group at http://groups-beta.google.com/group/coldbox
For News, visit http://blog.coldbox.org
For Documentation, visit http://wiki.coldbox.org
 
 


Wade Vogt

unread,
Jan 24, 2013, 12:53:09 PM1/24/13
to col...@googlegroups.com
Thanks Sana,

I will double-check my premissions on the "/tmp" folder!

Wade Vogt

unread,
Jan 24, 2013, 5:48:46 PM1/24/13
to col...@googlegroups.com
I set the permissions on this directory to full access (777) on the server, and the error is still coming up. I happens for some users but not others and it seems to come and go. When I deploy changes to the server I reinit the framework rather than doing a full restart of tomcat... not sure if that is related or not.

Is there anything else I should check?

Thanks


On Thursday, January 24, 2013 10:29:07 AM UTC-7, Sana wrote:

br...@bradwood.com

unread,
Jan 24, 2013, 5:55:44 PM1/24/13
to col...@googlegroups.com
Do the errors happen around the time that you reinit?  What kind of load are your servers seeing?  Is there any eternal process that might clear out the contents of the tmp directory?

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: br...@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com 

Wade Vogt

unread,
Jan 24, 2013, 6:18:57 PM1/24/13
to col...@googlegroups.com
This is a system that is on a test server and has a very light load. Today the error happened a couple of hours after the reinit. There aren't any external process that would clear out tmp directory. It is an EC2 micro instance thats only purpose is to serve this application. The application is not in production yet, so this is the only environment it is running in.

I've looked in the tmp directory after seeing the errors and I've never seen any files in it.

Wade Vogt

unread,
Jan 24, 2013, 6:53:51 PM1/24/13
to col...@googlegroups.com
I forgot to mention that this application is just the backend for a Flex client (blazeds) and an HTML client (ajax). Also, I ran a quick test on the server to make sure it wasn't a permissions issue "FileWrite('/wirebox/system/aop/tmp/test.txt','this is a test');".

I confirmed that the test.txt was in the tmp folder after running the test.


On Thursday, January 24, 2013 3:55:44 PM UTC-7, Brad Wood wrote:

Luis Majano

unread,
Jan 24, 2013, 8:43:45 PM1/24/13
to col...@googlegroups.com
Ahhhh what version of Railo are you on, I see 3.3.1 I believe this was a bug in Railo in that version that was resolved in a patch.
signature0.jpg

EJ Jaquet

unread,
Jan 25, 2013, 4:59:39 AM1/25/13
to col...@googlegroups.com
Hi all,

Just wanted to add to the conversation that we are seeing exactly the same message every now and then... We are using the Coldbox 3.5 stable release on Railo4, also the latest stable release.
Once we get this error, the only thing we can do to make it go away is restart Railo.

Kind regards,

Erik-Jan

Wade Vogt

unread,
Jan 25, 2013, 12:40:21 PM1/25/13
to col...@googlegroups.com
I am on Railo 3.3.1 and unfortunately I'm stuck there until I can find a way to work around this issue with newer versions (https://issues.jboss.org/browse/RAILO-1785). Based on EJ's post, I'm not sure a new version of Railo will help with the issue.

Aside from this issue, I couldn't be happier with Wirebox. Nice work, and thanks for the help!

Luis Majano

unread,
Jan 25, 2013, 8:10:40 PM1/25/13
to col...@googlegroups.com
Unfortunately I cannot replicate it

Luis Majano
CEO
Ortus Solutions, Corp
Toll Free/Fax: 1-888-557-8057
Direct: 909-248-3408
Twitter: @lmajano, @ortussolutions

Wade Vogt

unread,
Jan 26, 2013, 11:27:22 AM1/26/13
to col...@googlegroups.com
I need to do some more testing to be sure, but I believe I have a repeatable scenario for reproducing this error on our test server. If I upload a change to the server, then re-init Wirebox, the error starts happening for everyone except me. I have the framework in the application scope so it's odd that other people see the issue when I don't, but that is what is happening. The load on our test server is so light and sporadic that I'm not always sure if things are working for everyone, or if no one is currently using it.

I re-init the server all the time in my development environment and never have an issue, but I'm the only one in that environment. Also, when I restart Tomcat/Railo after deploying changes to our test server I don't see this issue. I'll do a little more testing in our server environment to see if my scenario is as repeatable as I think it is and let you know what I find. Worst case, it looks like I can avoid the issue by restarting Tomcat/Railo after deploying changes.

Wade 

Luis Majano

unread,
Jan 26, 2013, 12:58:40 PM1/26/13
to col...@googlegroups.com
Thanks wade. Also can you refresh me that this occurs when using AOP right?

Also, what type of caching do you have in railo for templates


Luis Majano
CEO
Ortus Solutions, Corp

Wade Vogt

unread,
Jan 26, 2013, 1:48:30 PM1/26/13
to col...@googlegroups.com
I am using AOP. I am using the built in "wirebox.system.aop.aspects.CFTransaction" aspect, and a custom aspect I created for security.

I have the "Once" caching setup on the test server. I plan to change that to "Never" when we get to production, since our deployments will be more controlled and will involve a tomcat/railo restart.

Here is the code I am using to reinit the framework:

    remote void function reloadFramework()
    {
        SystemCacheClear("all");
        lock scope="application" type="exclusive" timeout="10"
        {
            application.wirebox = createObject("component","wirebox.system.ioc.Injector").init("WireBox");

Brad Wood

unread,
Jan 26, 2013, 3:36:55 PM1/26/13
to col...@googlegroups.com

Is this part if a ColdBox app, or WireBox standalone?
What if you run a shutdown() on WireBox when reinitting?
Also is there a chance of scope-widening injection of the injector?  For instance, placing a reference to WireBox inside an application, server, or session-scoped object that might be holding a reference to an old injector after you've reinitted and created a new one.

Thanks!

Brad



Sent from my Samsung Epic™ 4G Touch

Luis Majano

unread,
Jan 26, 2013, 6:19:34 PM1/26/13
to col...@googlegroups.com
Bras is right as wirebox needs to issue a shutdown command just in case


Luis Majano
CEO
Ortus Solutions, Corp
Toll Free/Fax: 1-888-557-8057
Direct: 909-248-3408
Twitter: @lmajano, @ortussolutions
--

Wade Vogt

unread,
Jan 27, 2013, 10:42:50 AM1/27/13
to col...@googlegroups.com
- I am using WireBox standalone.
- I searched the code and couldn't find anywhere that application.wirebox was assigned to another variable.
- I've added the shutdown to my reinit process. It now looks like this:

        SystemCacheClear("all");
        lock scope="application" type="exclusive" timeout="20"
        {
            application.wirebox.shutdown();
            application.wirebox = createObject("component","wirebox.system.ioc.Injector").init("WireBox");
        }

I was getting an error with the shutdown method related to trying to shutdown cacheBox. I'm not currently using cacheBox so the instance.cacheBox variable wasn't set in the injector which caused the instance.cacheBox.shutdown() command to fail (line 190 in wirebox-1.5). I made a small change to the shutdown method in "wirebox.system.ioc.Injector" to get it to work.

The original code was:
// standalone cachebox? Yes, then shut it down baby!
if( NOT isColdBoxLinked() ){
instance.cacheBox.shutdown();
}

I changed it to:
// standalone cachebox? Yes, then shut it down baby!
if( isCacheBoxLinked() ){
instance.cacheBox.shutdown();
}

With the change, the shutdown completes without errors, but if I should be doing something else please let me know. 

I'll try this out in our test environment as see if it resolves the issue.

Luis Majano

unread,
Jan 27, 2013, 3:29:54 PM1/27/13
to col...@googlegroups.com
Rhanks for reporting this. Can you submit an issue for the shutdown. 


Luis Majano
CEO
Ortus Solutions, Corp
Toll Free/Fax: 1-888-557-8057
Direct: 909-248-3408
Twitter: @lmajano, @ortussolutions

Wade Vogt

unread,
Jan 28, 2013, 7:23:06 PM1/28/13
to col...@googlegroups.com
I submitted the ticket (https://www.assembla.com/spaces/coldbox/tickets/1435).

I have been doing a lot of reinit's today after adding the shutdown() to my reinit script, and we have had a pretty decent amount of activity on the server. The error only showed up once, which is a pretty big improvement. It happened to an active user, right after I did the reinit. I did another reinit and it fixed the problem.

I'm pretty sure this error will go away once I stop doing the reinit on our testing server... it's such a time saver though I'm having a hard time forcing myself to restart the app server.

Thanks for all the assistance, and I will let you know if anything changes.

Luis Majano

unread,
Jan 28, 2013, 7:57:26 PM1/28/13
to coldbox
Wade,

I would suggest something.

1. Using a reinit is a brute force of restarting ANY container and in all reality it should be a development tool and not a production approach. With that said, using force reinits can cause side effects in ANY system.

2. A better approach would be to leverage the ColdFusion "applicationStop()" approach.

Luis F. Majano
CEO
Ortus Solutions, Corp
To unsubscribe from this group and stop receiving emails from it, send an email to coldbox+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Wade Vogt

unread,
Jan 29, 2013, 12:11:54 AM1/29/13
to col...@googlegroups.com
Good points. Doing something like a reinit in a production environment would be a bad idea. My main concern with this issue is understanding what is causing it before moving my application into production. I am reasonably sure now that it only shows up after a reinit is done in a shared testing environment, so I am much relieved.

Thanks again for the assistance and for making this excellent set of tools available to the community.

Luis Majano

unread,
Jan 29, 2013, 12:29:57 PM1/29/13
to col...@googlegroups.com
No problem Wade!  We are definitely trying to push the envelope and help developers :)

I am glad!

Luis


Luis F. Majano
CEO
Ortus Solutions, Corp

ColdBox Platform: http://www.coldbox.org
IECFUG Manager: http://www.iecfug.com

On Monday, January 28, 2013 at 9:11 PM, Wade Vogt wrote:

Good points. Doing something like a reinit in a production environment would be a bad idea. My main concern with this issue is understanding what is causing it before moving my application into production. I am reasonably sure now that it only shows up after a reinit is done in a shared testing environment, so I am much relieved.

Thanks again for the assistance and for making this excellent set of tools available to the community.

signature0.jpg

Wade Vogt

unread,
Feb 6, 2013, 2:08:38 PM2/6/13
to col...@googlegroups.com
Just wanted to let you know that I was able to confirm that this error is a bug (or incompatibility) with Railo 3.3.1.  

I started adding "eagerinit" annotations to some of my singleton components and as soon as I did that this error showed up every time. I ran some tests with Railo 4.0.2 and there were no errors. 

There has been a bug related to flex integration in Railo since rev 3.3.1, which has been preventing me from upgrading. The fix is in progress, so hopefully I'll be able to upgrade soon!

Wade

Tom Miller

unread,
Jun 20, 2014, 10:13:05 AM6/20/14
to col...@googlegroups.com
Hmm, I'm getting this same error: "missingInclude": "/ram/9a414ea6-1783-4e09-8e81-e9ab8cbc4ab5.cfm" "Page /9a414ea6-1783-4e09-8e81-e9ab8cbc4ab5.cfm [ram:///9a414ea6-1783-4e09-8e81-e9ab8cbc4ab5.cfm] not found"

I was getting the same error as wade (/aop/tmp) but I moved to ram:// to try and rectify the issue.

I'm running Railo 4.2.1.001 - Coldbox 3.8.

Some of my aspects are working, some not. Is there a way to try and catch this error and force the aspect include to be regenerated? It's basically preventing some of my functions running (if the aspect isn't applied it's not the end of the world, but the function needs to run as huge parts of my app are falling over).

If I reinit (which I don't like doing in production) it goes away (temporarily it seems).

I'm running reasonably heavy load (2000 RPM).

Thanks,


Tom.

br...@bradwood.com

unread,
Jun 20, 2014, 11:43:07 AM6/20/14
to col...@googlegroups.com
Wirebox basically writes out the stub file, then immediately includes it.  It's possible your hard drives are caching the write and reporting it finished before it actually is.  That would be difficult to debug since any debugging code would mostly likely create a pause long enough that the file would then exist.  It would be interesting to get some stats on your hard disk's IOPS, IO latencies, and disk write queue length at the time of the error.  What OS and file system are you using?  
 
If that is the issue, the only thing I can really think of is to loop for up to a couple seconds waiting for the file to appear.  Though I wouldn't expect that behavior from RAM, so it's always possible that there is a concurrency bug in Wirebox.
 
On a related note, one of the issues, WireBox AOP has is that every new cfm file creates a Java class which can slowly fill up your permgen.  If you are only binding aspects to singletons, there's really no issue since the stubs are only created and included once.  However aspects bound to transient objects have to be mixed in every time a new object is created.  So if you have a user list that creates 100 user objects on each page request, and each user object has an AOP aspect mixed in-- that's 100 .cfm files that are written, read, and deleted, and 100 new Java class files that go into permgen space every request.
 
A while back I thought about an idea of creating a pool of local temp files that could be reused over and over so new cfms didn't have to be written.  I'm not sure how Adobe CF works, but in Railo, an edit to a .cfm file simply overwrites the bytecode in memory without creating a new class so you can change the same cfm 1000 times and no new classes are created.  That idea may also help this sort of issue since the files would already exist once the pool had warmed up.  
 
Another thought that just came to me after poking at the temp files is that every temp file for the same method has the same code in it.  There's probably some caching we could do to optimize that. 

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: br...@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com 
 
 
--------- Original Message ---------
--
--
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
For News, visit http://blog.coldbox.org
For Documentation, visit http://wiki.coldbox.org

---
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to coldbox+u...@googlegroups.com.
To post to this group, send email to col...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Tom Miller

unread,
Jun 20, 2014, 11:51:15 AM6/20/14
to col...@googlegroups.com
I'm running on elasticbeanstalk, linux - a AWS M3.Large instances...

I do have "Never ( Best Performance )" set under Inspect Templates (CFM/CFC) in the Railo Settings - Performance/Caching. menu. I'd be reluctant to turn that off, as it's delivered noticeable performance gains...

I'm using the AOP method matcher aspect - only on singletons. Which, is actually the issue - it never recreates the the missing include as, as you pointed out, it only does it once. So once it's "done it", it never tries again, and the function with the method matcher aspect will never complete successfully until I reinit.
--

Tom Miller

Managing Director


=======================================================

 

eBiz

Centurion House, London Road, Staines, TW18 4RP

Tel: 08448 045046

email: tom.miller@ebiz.uk | web: ebiz.uk | www.facebook.com/eBizUK | www.twitter.com/eBizUK

 

 

Information contained in this communication may be confidential and/or legally privileged. It is intended solely for the use of the addressee and others authorized to receive it. If you are not the intended recipient any disclosure, copying, distribution or action taken in reliance on its contents is prohibited and may be unlawful. Neither eBiz | interactive business solutions nor the author accepts legal liability for the contents of this message. If you receive this communication in error please advise us at pri...@ebiz.co.uk

 

Whilst we run anti-virus software we are not liable for any loss/damage sustained as a result of software viruses. The recipients are advised to run their own anti-virus software

br...@bradwood.com

unread,
Jun 20, 2014, 12:12:38 PM6/20/14
to col...@googlegroups.com
I'm not sure if I followed that.  If your objects are singletons, it should only need to create it once since the object is only created once.  When you reinit, the injector is shut down and a new one created which means your singletons are re-created and it should write a new temp file then. 
 
There really should be no way it looks for a file without it being written because the code in Mixer.cfc looks like this:

// Write it out to the generation space
instance.mixerUtil.writeAspect( expandedFile, udfOUt.toString() );
// Mix In generated aspect
arguments.target.$wbAOPInclude( tmpFile );
// Remove Temp Aspect from disk
instance.mixerUtil.removeAspect( expandedFile );

Basically, writes the temp file, includes it, and deletes it all at once.  

Tom Miller

unread,
Jun 20, 2014, 12:31:39 PM6/20/14
to col...@googlegroups.com
My AOP object isn't a singleton thought - I guess it should be? Perhaps that's the issue?

My app works fine, until a method that is matched in my aspect is called - that's when it falls over. 

So, as a crude example,

Wirebox:
map("UserService").to("model.UserService").asSingleton();
mapAspect("Monitor").to("aop.Monitor");


aop.Monitor.cfc:
component classMatcher="any" methodMatcher="annotatedWith:loggable" implements="coldbox.system.aop.MethodInterceptor" { 
  function invokeMethod(invocation) {
    arguments.invocation.proceed();
    logger.log("User Saved");
  }
}

UserService.cfc:
function saveUser() loggable {
  // do something
}

handlers/user.cfc:
property name="user" inject="id:UserService";
function saveUser() {
  user.save() // ERROR! missing include is thrown.
}
function deleteUser() {
 user.delete() // not matched in method matcher aspect, as it's not annotated - works fine...
}










Tom Miller

unread,
Jun 20, 2014, 12:40:11 PM6/20/14
to col...@googlegroups.com
EDIT:
user.saveUser() // ERROR! missing include is thrown. NOTE: It is continually thrown each time the method is called, without fail, until I reinit.

br...@bradwood.com

unread,
Jun 20, 2014, 12:43:03 PM6/20/14
to col...@googlegroups.com
Aspects are always singletons.  If you look at the mapAspect method in the binder.cfc you'll see it actually just does this:
 
map(arguments.aspect).asEagerInit().asSingleton();
 
Are you saying the example below happens every single time, or occasionally?  Can you provide a full stack trace?

br...@bradwood.com

unread,
Jun 20, 2014, 12:45:26 PM6/20/14
to col...@googlegroups.com
Interesting.  Please provide a stack trace.  It would have to be re-creating, or at least remixing the AOP advice on every request.  Do you have handler caching enabled? Also, is your UserService a singleton?
 
Are there any other errors related to writing files.  Perhaps permission-related?

Tom Miller

unread,
Jun 20, 2014, 12:50:15 PM6/20/14
to col...@googlegroups.com
Also, I think it might be all methods that are matched - they all die basically. It's not just one or two.

Here's a stack trace:

"Page /9a414ea6-1783-4e09-8e81-e9ab8cbc4ab5.cfm [ram:///9a414ea6-1783-4e09-8e81-e9ab8cbc4ab5.cfm] not found
at railo.runtime.PageSourceImpl.loadPage(PageSourceImpl.java:158):158
at railo.runtime.type.util.ComponentUtil.getPage(ComponentUtil.java:713):713
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:92):92
at railo.runtime.type.UDFImpl._call(UDFImpl.java:306):306
at railo.runtime.type.UDFImpl.call(UDFImpl.java:207):207
at railo.runtime.ComponentImpl._call(ComponentImpl.java:588):588
at railo.runtime.ComponentImpl._call(ComponentImpl.java:506):506
at railo.runtime.ComponentImpl.call(ComponentImpl.java:1738):1738
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:724):724
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1554):1554
at modules.egroup.handlers.figures_cfc$cf.udfCall1(/modules/eGroup/handlers/figures.cfc:165):165
at modules.egroup.handlers.figures_cfc$cf.udfCall(/modules/eGroup/handlers/figures.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:92):92
at railo.runtime.type.UDFImpl._call(UDFImpl.java:306):306
at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:194):194
at railo.runtime.ComponentImpl._call(ComponentImpl.java:589):589
at railo.runtime.ComponentImpl._call(ComponentImpl.java:506):506
at railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1751):1751
at railo.runtime.tag.Invoke.doComponent(Invoke.java:203):203
at railo.runtime.tag.Invoke.doEndTag(Invoke.java:176):176
at system.web.controller_cfc$cf.udfCall6(/coldbox/system/web/Controller.cfc:764):764
at system.web.controller_cfc$cf.udfCall(/coldbox/system/web/Controller.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:92):92
at railo.runtime.type.UDFImpl._call(UDFImpl.java:306):306
at railo.runtime.type.UDFImpl.call(UDFImpl.java:207):207
at railo.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:748):748
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:724):724
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1554):1554
at system.web.controller_cfc$cf.udfCall5(/coldbox/system/web/Controller.cfc:648):648
at system.web.controller_cfc$cf.udfCall(/coldbox/system/web/Controller.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:92):92
at railo.runtime.type.UDFImpl._call(UDFImpl.java:306):306
at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:194):194
at railo.runtime.ComponentImpl._call(ComponentImpl.java:589):589
at railo.runtime.ComponentImpl._call(ComponentImpl.java:506):506
at railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1755):1755
at railo.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:755):755
at railo.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1564):1564
at coldbox.system.coldbox_cfc$cf.udfCall1(/coldbox/system/Coldbox.cfc:236):236
at coldbox.system.coldbox_cfc$cf.udfCall(/coldbox/system/Coldbox.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:92):92
at railo.runtime.type.UDFImpl._call(UDFImpl.java:306):306
at railo.runtime.type.UDFImpl.call(UDFImpl.java:207):207
at railo.runtime.ComponentImpl._call(ComponentImpl.java:588):588
at railo.runtime.ComponentImpl._call(ComponentImpl.java:506):506
at railo.runtime.ComponentImpl.call(ComponentImpl.java:1738):1738
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:724):724
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1554):1554
at application_cfc$cf.udfCall(/Application.cfc:61):61
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:92):92
at railo.runtime.type.UDFImpl._call(UDFImpl.java:306):306
at railo.runtime.type.UDFImpl.call(UDFImpl.java:207):207
at railo.runtime.ComponentImpl._call(ComponentImpl.java:588):588
at railo.runtime.ComponentImpl._call(ComponentImpl.java:506):506
at railo.runtime.ComponentImpl.call(ComponentImpl.java:1738):1738
at railo.runtime.listener.ModernAppListener.call(ModernAppListener.java:388):388
at railo.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:114):114
at railo.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:18):18
at railo.runtime.PageContextImpl.execute(PageContextImpl.java:2218):2218
at railo.runtime.PageContextImpl.execute(PageContextImpl.java:2185):2185
at railo.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:332):332
at railo.loader.servlet.CFMLServlet.service(CFMLServlet.java:29):29
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728):728
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305):305
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210):210
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749):749
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487):487
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412):412
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339):339
at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213):213
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171):171
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145):145
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92):92
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394):394
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243):243
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210):210
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222):222
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123):123
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171):171
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100):100
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680):680
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953):953
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118):118
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408):408
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041):1041
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603):603
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310):310
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145):1145
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615):615
at java.lang.Thread.run(Thread.java:744):744

Here's the tag context (it's in JSON):

    "ERRORDETAIL": {
      "missingInclude": "/ram/9a414ea6-1783-4e09-8e81-e9ab8cbc4ab5.cfm"
    },
    "EVENT": "eGroup:figures.flag",
    "STAMP": "20140620T122348Z",
    "TAGCONTEXT": [
      {
        "Raw_Trace": "modules.egroup.handlers.figures_cfc$cf.udfCall1(/modules/eGroup/handlers/figures.cfc:165)",
        "codePrintPlain": "163:     <cfset rc.pID = event.getValue(\"pID\",0)>\n164:     <cfset rc.flag = event.getValue(\"flag\",\"false\")>\n165:     <cfset figures.flag(rc.pID,rc.flag)>\n166:     <cfset event.noRender()>\n167:   </cffunction>\n",
        "column": 0,
        "line": 165,
        "template": "/modules/eGroup/handlers/figures.cfc",
        "id": "??",
        "type": "cfml",
        "codePrintHTML": "163:     &lt;cfset rc.pID = event.getValue(&quot;pID&quot;,0)&gt;<br>\n164:     &lt;cfset rc.flag = event.getValue(&quot;flag&quot;,&quot;false&quot;)&gt;<br>\n<b>165:     &lt;cfset figures.flag(rc.pID,rc.flag)&gt;</b><br>\n166:     &lt;cfset event.noRender()&gt;<br>\n167:   &lt;/cffunction&gt;<br>\n"
      },
      {
        "Raw_Trace": "system.web.controller_cfc$cf.udfCall6(/coldbox/system/web/Controller.cfc:764)",
        "codePrintPlain": "762: \t\t\t\t\t  method=\"#arguments.method#\"\n763: \t\t\t\t\t  returnvariable=\"refLocal.results\"\n764: \t\t\t\t  \t  argumentcollection=\"#arguments.argCollection#\">\n765: \t\t</cfif>\n766: \n",
        "column": 0,
        "line": 764,
        "template": "/coldbox/system/web/Controller.cfc",
        "id": "??",
        "type": "cfml",
        "codePrintHTML": "762: \t\t\t\t\t  method=&quot;#arguments.method#&quot;<br>\n763: \t\t\t\t\t  returnvariable=&quot;refLocal.results&quot;<br>\n<b>764: \t\t\t\t  \t  argumentcollection=&quot;#arguments.argCollection#&quot;&gt;</b><br>\n765: \t\t&lt;/cfif&gt;<br>\n766: <br>\n"
      },
      {
        "Raw_Trace": "system.web.controller_cfc$cf.udfCall5(/coldbox/system/web/Controller.cfc:648)",
        "codePrintPlain": "646: \t\t\t\t\telse{\n647: \t\t\t\t\t\t// Normal execution\n648: \t\t\t\t\t\tloc.results = invoker(oHandler, ehBean.getMethod(), loc.argsMain, arguments.private);\n649: \t\t\t\t\t}\n650: \t\t\t\t}\n",
        "column": 0,
        "line": 648,
        "template": "/coldbox/system/web/Controller.cfc",
        "id": "??",
        "type": "cfml",
        "codePrintHTML": "646: \t\t\t\t\telse{<br>\n647: \t\t\t\t\t\t// Normal execution<br>\n<b>648: \t\t\t\t\t\tloc.results = invoker(oHandler, ehBean.getMethod(), loc.argsMain, arguments.private);</b><br>\n649: \t\t\t\t\t}<br>\n650: \t\t\t\t}<br>\n"
      },
      {
        "Raw_Trace": "coldbox.system.coldbox_cfc$cf.udfCall1(/coldbox/system/Coldbox.cfc:236)",
        "codePrintPlain": "234: \t\t\t\t<!--- Run Default/Set Event not executing an event --->\n235: \t\t\t\t<cfif NOT event.isNoExecution()>\n236: \t\t\t\t\t<cfset refResults.results = cbController.runEvent(default=true)>\n237: \t\t\t\t</cfif>\n238: \n",
        "column": 0,
        "line": 236,
        "template": "/coldbox/system/Coldbox.cfc",
        "id": "??",
        "type": "cfml",
        "codePrintHTML": "234: \t\t\t\t&lt;!--- Run Default/Set Event not executing an event ---&gt;<br>\n235: \t\t\t\t&lt;cfif NOT event.isNoExecution()&gt;<br>\n<b>236: \t\t\t\t\t&lt;cfset refResults.results = cbController.runEvent(default=true)&gt;</b><br>\n237: \t\t\t\t&lt;/cfif&gt;<br>\n238: <br>\n"
      },
      {
        "Raw_Trace": "application_cfc$cf.udfCall(/Application.cfc:61)",
        "codePrintPlain": "59:     //Process a ColdBox request only\n60:     if( findNoCase('index.cfm',listLast(arguments.targetPage,\"/\")) ){\n61:      application.cbBootStrap.processColdBoxRequest();\n62:     }\n63: \n",
        "column": 0,
        "line": 61,
        "template": "/Application.cfc",
        "id": "??",
        "type": "cfml",
        "codePrintHTML": "59:     //Process a ColdBox request only<br>\n60:     if( findNoCase('index.cfm',listLast(arguments.targetPage,&quot;/&quot;)) ){<br>\n<b>61:      application.cbBootStrap.processColdBoxRequest();</b><br>\n62:     }<br>\n63: <br>\n"
      }
    ],

br...@bradwood.com

unread,
Jun 20, 2014, 12:53:14 PM6/20/14
to col...@googlegroups.com
Interesting-- that error is not coming from the AOP mixer-- that's coming from Railo while trying to compile the code.  Are you clearing template cache at the same time that you reinit?   Railo may be trying to go back to the disk to find the original file that function came from.
 
Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: br...@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com 
 
 
--------- Original Message ---------
Subject: Re: Re: Re: [coldbox:21777] Re: [wirebox-1.5+] Error related to system/aop/tmp files
From: "Tom Miller" <tom.m...@ebiz.co.uk>
--

Tom Miller

unread,
Jun 20, 2014, 1:03:51 PM6/20/14
to col...@googlegroups.com
No I'm just reiniting. I mean, I only do that when it bawks. My App is built from a war, and I don't have access to the server (well, I do, I can get access to it - but because it's elasticbeanstalk it spins up on it's own free will when it needs to). 

Are you talking about the cacheBox template cache? or the Railo Page Pool Cache?


Tom Miller

unread,
Jun 20, 2014, 1:05:19 PM6/20/14
to col...@googlegroups.com
Right, I commented out // instance.mixerUtil.removeAspect( expandedFile );, changed the tmp file location back to the default, restarted Railo, and the aop/tmp directory is filled with files...so I don't think it's permission related...

br...@bradwood.com

unread,
Jun 20, 2014, 1:12:55 PM6/20/14
to col...@googlegroups.com
The Railo cache.  That's the only reason I can imagine that Railo would go looking for a .cfm file long after it's been included.  Perhaps this is a good question for Micha on the Railo list.  I'm looking at the Java code in Railo, but it's often time difficult to follow exactly what's going on.

br...@bradwood.com

unread,
Jun 20, 2014, 1:13:52 PM6/20/14
to col...@googlegroups.com
Yeah, once I saw the stack trace, I could tell it wasn't related to the actual Wirebox code.  I assumed the wirebox include was failing-- but it's actually something internal to Railo that is looking for the file after it's been deleted.

br...@bradwood.com

unread,
Jun 20, 2014, 1:23:52 PM6/20/14
to col...@googlegroups.com
I started this thread on the Railo group:
 

Tom Miller

unread,
Jun 20, 2014, 1:31:21 PM6/20/14
to col...@googlegroups.com
Awesome thanks Brad!

Tom Miller

unread,
Jun 20, 2014, 1:34:27 PM6/20/14
to col...@googlegroups.com
I guess I could, for now, keep the remove aspect commented out, so that Railo can (although why it should, as you said, is a mystery) find the include again. My servers rarely last more than a few days at the moment as I'm regularly patching them with new versions, and seeing as I'm only running one app, with all singletons, it won't create that many tmp files.

But that's not a solution for anyone else!

Thanks,

TOm.

Brad Wood

unread,
Jun 26, 2014, 1:09:47 PM6/26/14
to col...@googlegroups.com, tom.m...@ebiz.uk
For anyone following this, Micha got back to me today on my Railo thread and told me to put in a ticket for it.  That ticket is here:


Please vote or place a comment to encourage it to get fixed :)

Thanks!

~Brad
Awesome thanks Brad!


--------- Original Message ---------
--------- Original Message ---------
--------- Original Message ---------
To unsubscribe from this group and stop receiving emails from it, send an email to coldbox+unsubscribe@googlegroups.com.

To post to this group, send email to col...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

 

--
--
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
For News, visit http://blog.coldbox.org
For Documentation, visit http://wiki.coldbox.org
For Bug Reports, visit https://ortussolutions.atlassian.net/browse/COLDBOX
---
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to coldbox+unsubscribe@googlegroups.com.

To post to this group, send email to col...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


 
--

Tom Miller

Managing Director

 

=======================================================

 

eBiz

Centurion House, London Road, Staines, TW18 4RP

Tel: 08448 045046

email: tom.miller@ebiz.uk | web: ebiz.uk | www.facebook.com/eBizUK | www.twitter.com/eBizUK

 

 

Information contained in this communication may be confidential and/or legally privileged. It is intended solely for the use of the addressee and others authorized to receive it. If you are not the intended recipient any disclosure, copying, distribution or action taken in reliance on its contents is prohibited and may be unlawful. Neither eBiz | interactive business solutions nor the author accepts legal liability for the contents of this message. If you receive this communication in error please advise us at pri...@ebiz.co.uk

 

Whilst we run anti-virus software we are not liable for any loss/damage sustained as a result of software viruses. The recipients are advised to run their own anti-virus software

 

--
--
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
For News, visit http://blog.coldbox.org
For Documentation, visit http://wiki.coldbox.org
For Bug Reports, visit https://ortussolutions.atlassian.net/browse/COLDBOX
---
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to coldbox+unsubscribe@googlegroups.com.

To post to this group, send email to col...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

 

--
--
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
For News, visit http://blog.coldbox.org
For Documentation, visit http://wiki.coldbox.org
For Bug Reports, visit https://ortussolutions.atlassian.net/browse/COLDBOX
---
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to coldbox+unsubscribe@googlegroups.com.

To post to this group, send email to col...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
--
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
For News, visit http://blog.coldbox.org
For Documentation, visit http://wiki.coldbox.org
For Bug Reports, visit https://ortussolutions.atlassian.net/browse/COLDBOX
---
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to coldbox+unsubscribe@googlegroups.com.

To post to this group, send email to col...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Tom Miller

Managing Director


=======================================================

 

eBiz

Centurion House, London Road, Staines, TW18 4RP

Tel: 08448 045046

email: tom.miller@ebiz.uk | web: ebiz.uk | www.facebook.com/eBizUK | www.twitter.com/eBizUK

 

 

Information contained in this communication may be confidential and/or legally privileged. It is intended solely for the use of the addressee and others authorized to receive it. If you are not the intended recipient any disclosure, copying, distribution or action taken in reliance on its contents is prohibited and may be unlawful. Neither eBiz | interactive business solutions nor the author accepts legal liability for the contents of this message. If you receive this communication in error please advise us at pri...@ebiz.co.uk

 

Whilst we run anti-virus software we are not liable for any loss/damage sustained as a result of software viruses. The recipients are advised to run their own anti-virus software

Mike Craig

unread,
Jul 19, 2014, 10:50:49 PM7/19/14
to col...@googlegroups.com
Has this gotten resolved and has anyone had any experience with the same thing happening in CF10 and IIS?  I'm testing my first AOP code based on examples from some code Brad has provided and the documentation and I'm getting the same problem.  I've doubled checked write privileges and security on the /tmp directory and everything "says" it should be writable, but I'm similarly told that java cannot write the file.  One difference I might have over other tests is that in IIS I have created a virtual directory to my 3.5.2 installed coldbox, though in IIS I have inspected the properties and it should still be writable.

Anyone else?

br...@bradwood.com

unread,
Jul 19, 2014, 11:09:40 PM7/19/14
to col...@googlegroups.com
That message isn't telling you Java can't write the file.  It's telling you that it can't find the file.  I raised this thread on the Railo list back in June:
 
Micha asked me to put in a ticket so I put in this:
 
There does not appear to be any work done on the ticket yet.  You should vote/comment on the ticket and also bug him on the Railo list :)
 
The only known workaround right now is to comment out the line of code in WireBox that deletes the AOP temp files and then manually clean that directory yourself.

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: br...@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com 
 
 
--------- Original Message ---------
--
--
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
For News, visit http://blog.coldbox.org
For Documentation, visit http://wiki.coldbox.org
For Bug Reports, visit https://ortussolutions.atlassian.net/browse/COLDBOX
---
You received this message because you are subscribed to the Google Groups "ColdBox Platform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to coldbox+u...@googlegroups.com.

Andrew Scott

unread,
Jul 20, 2014, 1:23:02 AM7/20/14
to col...@googlegroups.com
Yes ColdFusion is having similar issues, please see the thread I posted last week, where Luis and Brad have not even bothered to comment on. Its like they are not interested in solving year old problems with Wirebox and CF in any way shape or form.

Regards,
Andrew Scott
WebSite: http://www.andyscott.id.au/



Andrew Scott

unread,
Jul 20, 2014, 1:27:18 AM7/20/14
to col...@googlegroups.com
In case it got lost.

This is something that has been bothering me for nearly 4 years now, which to date has been no answer from here or even Adobe. This is specifically an issue that really needs to have a solution.

In the past I am seeing errors in my logs that look like this

datasource is not defined or null pointer errors.

I have tracked this back to ColdBox in the following location.

  /**
* Get the default application datasource
*/
  public string function getDefaultDatasource(){
  // get application metadata
  if( listFirst(server.coldfusion.productVersion,",") gte 10 ){
var settings = getApplicationMetadata();
}
else{
var settings = application.getApplicationSettings();
}

  // check orm settings first
  if( structKeyExists( settings,"ormsettings") AND structKeyExists(settings.ormsettings,"datasource")){
  return settings.ormsettings.datasource;
  }
  // else default to app datasource
  return settings.datasource;
  };

The actual error is coming from ColdFusion on the lines where it is setting the variable settings, so this is not a specific version of ColdFusion. But when you look deeper into the actual error, it appears to be an uncaught exception in the actual ColdFusion application itself.

If you read the Adobe ColdFusion documentation, it is supposed to return something always. So why it is returning NULL at times is really something that I am getting no love with from either Luis, Brad or any of the team from Ortis Solutions. Nor am I getting any love from Adobe when it comes to this error either.

Anyway, I have now reached another issue that seems to be totally related to this problem and WireBox itself. The actual error is this.

getLogoutUrl},RETURNTYPE={String},PARAMETERS={[Ljava.lang.Object;@42b4a8c1}}, {ACCESS={public},NAME={isEnabled},RETURNTYPE={Boolean},PARAMETERS={[Ljava.lang.Object;@62b3391d}}]},HINT={A library to build apps on Facebook.com and social websites with Facebook Connect},PATH={D:\home\somedomain\wwwroot\modules\cronus-facebook\model\sdk\FacebookApp.cfc},INHERITANCETRAIL={[modules.cronus-facebook.model.sdk.FacebookApp, modules.cronus-facebook.model.sdk.FacebookBase, WEB-INF.cftags.component]},TYPE={component}}},CONSTRUCTOR={init},METHOD={},ASPECT={false}}, Stacktrace: coldfusion.runtime.CustomException: Persistent scope is not available (by default session scope, so you must enable session management for this app) at coldfusion.tagext.lang.ThrowTag.doStartTag(ThrowTag.java:142) at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2799) at 

What makes this annoying is that this usually only appears when the Application has been reloaded, but there are times where the server has to be restarted for it to go. What is causing this is not known, at least not by me anyway.

This is a Facebook SDK, that is being setup like this.

binder.map("facebookSDK@fbModule").to("#moduleMapping#.model.sdk.FacebookApp")
.initWith( appId = variables.settings.facebook.APP_ID, secretKey = variables.settings.facebook.SECRET_KEY );

binder.map("FacebookGraphAPI@fbModule").to("#moduleMapping#.model.sdk.FacebookGraphAPI")
.initWith( appId = variables.settings.facebook.APP_ID );

Nothing looks out of the ordinary here, so lets look at the constructor for this model.

public Any function init(required String appId, required String secretKey) {
if (!isPersistentDataEnabled()) {
throw(message="Persistent scope is not available (by default session scope, so you must enable session management for this app)", type="UnvailablePersistentScope");
}
super.init(arguments.appId);
setAppId(arguments.appId);
setSecretKey(arguments.secretKey);
return this;
}

Ok that explains the error message as it is catching the throw, but why is it being thrown and the following code gives the answer.

public Boolean function isPersistentDataEnabled() {
if (ListFirst(server.coldfusion.productversion,",") GTE 10) {
return getApplicationMetaData().sessionManagement; // CF10 compatible
} else {
return application.getApplicationSettings().sessionManagement;
}
}

Wow again it seems like this method is not 100% reliable, now the question is why is this the case?

So here is the question, I doubt this is an issue with the way it is being done, but something that ColdFusion itself is handling wrong. Is there anyone else out there who knows what is causing this and how to get around it, but more importantly is there a way we can get this to reliably happen 100% (I am able to get it about 10% of the time on a single user system, but 80% on a production system) that can get Adobe to look at this as a matter of urgency.

But the one thing that is common, all errors come from something being done in WireBox that is used as a property being Injected. I can't find the original bug that was raised with Adobe, rest assured it has been in there hands since ColdFusion 10 was released.

Any help, suggestions would be appreciated. 


Regards,
Andrew Scott
WebSite: http://www.andyscott.id.au/



Reply all
Reply to author
Forward
0 new messages