AWS Thinkbox Discussion Forums

After Effects Job crashes when syncing fonts

Hi everyone,

I’m trying to set up an After Effects render farm and an essential feature for our farm would be the font synchronization. The farm ist Windows only.
After submitting my first job and setting up 4 slaves with working After Effects licenses (current Creative Cloud version - I believe it’s 12.2?), the first slave started the job but kept on rendering for over an hour which didn’t seem reasonable.
After checking the slave log, I saw that the slave never got beyond this point:

0: INFO: Synchronizing with network Font folder ‘S:\Global\AfterEffects\Fonts’
0: INFO: Synchronizing to local Font folder ‘C:\WINDOWS\Fonts’

The “S:\Global…” folder is our central server system, and copying from this location to the “Windows\Fonts” folder manually via Windows Explorer works just fine!
It seems that the Deadline copy command doesn’t seem to work for whatever reason, after this I even have to kill the DeadlineSlave process in the Windows Task Manager to stop/disable the slave.
This happens with every one of the 4 slaves I set up.
Any idea how to work around this problem - since we really need the font syncing, turning it off isn’t really an option for us.
Best regards

Dirk

Tada!
answers.microsoft.com/en-us/wind … 2b4bedcca5

It’s a permissions problem on the fonts folder. Deadline isn’t allowed to copy files in there since Vista.

I’ve got a todo item to update our docs.

Hi,

ok that seems to help, thanks!
Here’s the next problem though :slight_smile:

Error in RenderExecutable: GetConfigEntry: Attempted to access non-existent config key RenderExecutable12_2 (Deadline.Plugins.RenderPluginException)

My After Effects version is the newest CC update (listed in the Deadline job as 12.2). I have tried to list the CC executables in the plugin config tab under “CS6 Render Executable”, but it doesn’t help. Is there a way to prevent the Deadline submission script in After Effects (the jsx file in the repository) from sending the “12.2” version info, and would this help at all? It seems like the slave doesn’t find a render executable for version 12.2, so I’m trying to work around this by providing an older version number. Is CS6 version 11?

Ah, good old AE. Looks like CS6 is version 11. Creative cloud is 12, and they went and changed their numbering scheme on us :slight_smile:

The easiest way to handle this would be to open up “[repo]\plugins\AfterEffects\AfterEffects.dlinit” and add the binary paths in there.

If you feel like forcing a version though, the code for it starts at line 109 of "[repo]\submission\AfterEffects\Main\SubmitAEToDeadline.jsx:

var version = app.version.substring( 0, app.version.indexOf( 'x' ) ); while( version.indexOf( '.' ) != version.lastIndexOf( '.' ) ) version = version.substring( 0, version.lastIndexOf( '.' ) );

I’ll discuss with Ryan how we’ll handle this going forward.

Sorry to bring an old thread back to life, but I’m having the same font installing permissions problem on windows server 2012. I’ve set all the windows permissions as best I can trying a few different guides, but still no luck.

This is the method that hangs: PathUtils.RegisterFont()

What step does RegisterFont() take and what commands does it run? Is there a way for me to run these manually via the command line in the hope it prints an error I can use as a clue?

Possible solution found… will report back

Hello Dave,

Can I ask what folder you are using for your font syncing? If you are using the Windows default folder, “C:\Windows\Fonts” then you need to use a different folder. I’ll look into the command used for the registration of fonts in Deadline for you.

So, that function registers the font in Window’s list of known fonts for the current boot and sends a message to all of the open applications telling them to update their font cache. The part that’s locking up is the sending of that message.

In 7.1 we’ve fixed that by having a timeout on the font update broadcast calls. It may make the sync take a lot longer, so keep your eyes out for that. I’m almost certain it will, so some real-world experience would be very helpful.

We’ve also moved the syncing out of AE in 7.1 and into its own event script (so more apps can benefit). If you’re having trouble finding it after the update, look under “Tools -> Event Plugins” to configure and enable it.

Hi Guys, thanks for the input

Dwight, I’m not syncing “C:\Windows\Fonts”, the path is Y:\fonts.

Edwin, separating the font syncing from AE definitely sounds useful, I look forward to testing that out.

I think I managed to solve the issue yesterday, but there’s a caveat, I only realised I had solved it by looking at the log of a virtual machine I had just destroyed. so all was lost! I think the success was a mixture of using the Microsoft permissions guide mentioned in the second post of this forum, along with dropping the security level for the local intranet. This can be done by going to Windows ‘Internet Options’->Security->‘Local Intranet’->Then either changing the slider to ‘low’ or adding a custom site with the path to your file server. When I come back to try and fix this again I’ll record what I do and report back.

If anyone else is struggling with this and needs a hacky kinda quick fix then another option is to put a program called regfont on the slave nodes, and then use deadline remote control to run it. regfont is a command line application that temporarily registers fonts until your next reboot, it doesn’t seem to suffer from the same permissions issues as permanently installing fonts and you can pass it a network path to a font folder. I haven’t fully tested this technique but can’t see why it wouldn’t work.

Regfont info: http://www.marshwiggle.net/regfont/
Regfont downloads: http://www.marshwiggle.net/regfont/regfont-20130320.zip?attredirects=0&d=1

Quick follow up for anyone needing a quick/temporary/emergency fix

  1. download regfont.exe from the link above.
  2. place it in a network folder the slaves have access to
  3. create a fonts folder on the network drive
  4. Use deadline ‘Submit command line job to deadline’ to run regfont.exe on all the nodes:
    Set executable to regfont location e.g. ‘\10.1.100.69\fonts\install_app\regfont.exe’
    Set arguments to -a and point it to the fonts folder e.g. ‘-a \10.1.100.69\fonts\fonts*.*’
  5. Submit job

Nice thing is you can run this on your existing slaves without having to go and fix permissions etc, just remember the font additions aren’t persistent and will disappear after reboot.

Privacy | Site terms | Cookie preferences