Autodesk / sitoa

Arnold plugin for Softimage
Apache License 2.0
33 stars 16 forks source link

Crash when trying to get a license from AdLM (FlexLM) #74

Closed JenusL closed 4 years ago

JenusL commented 5 years ago

Starting with SItoA 5.2.0, it crashes when using Autodesk License Manager. RLM works fine. I got this screenshot from rray on si-community.com: aIfmcxT

He also reported that the last version he could run was SItoA 5.2.0-beta. That version had Arnold 5.2.1.0. Arnold 5.2.2.0 introduced the Licensing Manager Priorities. Maybe the bug has someting to do with that. My workstation crashes, but my home computer doesn't. I will try to see what's going on.

JenusL commented 5 years ago

I just compiled SItoA 5.2.0 with both Arnold 5.2.1.0 and 5.2.2.0 and I can confirm that the bug started with 5.2.2.0. AdClmHub_1.dll and adlmint.dll are identical in Arnold releases 5.2.1.0, 5.2.2.0 and current Arnold 5.3.0.2 release, so something must have changed in Arnold itself. @sjannuz This is a pretty big deal. Could you report this to the core team?

arnold-support commented 5 years ago

Given that many other users are running Arnold with Autodesk licenses and not crashing, I'm not convinced it's it's a bug in Arnold. Does kick crash?

There's a lot of moving parts in the Autodesk licensing framework, and just one bad xml file somewhere and the licensing won't work.

JenusL commented 5 years ago

No kick doesn't crash.

arnold-support commented 5 years ago

Right, kick works fine:

00:00:00    57MB         |  sitoa_shaders.dll: closure uses Arnold 5.3.0.2
00:00:00    57MB         | loaded 103 plugins from 1 lib(s) in 0:00.31
00:00:00    58MB         | [ass] loading Nul ...
00:00:00    58MB         | [ass] read 0 bytes, 0 nodes in 0:00.00
00:00:00    58MB         |
00:00:00    58MB         | authorizing with default license managers: rlm, clm ...
00:00:02    66MB         | [clm] authorized for "86985ARNOL_2018_0F" in 0:00.07
00:00:02    66MB         | [clm] expiration date: 2020/04/12, in use: 1/5

So it's something else. Investigating...

JenusL commented 5 years ago

I was able to reproduce the issue on my home machine as well by pointing to the Autodesk License Server at work. I also updated our NLM to latest but still crashes. The reason I think it's something in Arnold core is that this just started with Arnold 5.2.2.0 when you added the ARNOLD_LICENSE_MANAGER variable.

arnold-support commented 5 years ago

Nope. It's the old adlmint.dll in the Softimage Application/bin folder.

If I replace that with the newer adlmint.dll from the SItoA bin folder, then xsibatch gets a license and renders.

With the old, original adlmint.dll in the Application/bin folder, xsibatch crashes at license checkout

xsi.exe still runs too, a bit surprisingly

I did this as a test, it's seems awful hacky to rely on it

arnold-support commented 5 years ago

Need to somehow make sure Arnold and the newer adlmint are loaded

JenusL commented 5 years ago

Ok but adlmint.dll supplied with Arnold was the same newer version in 5.2.1.0 as well. Does it mean that you made sure it was loaded in that version but that code got lost in 5.2.2.0? I really don't get how this could surface otherwise...

ReinhardC commented 5 years ago

Just tried it, but XSI wouldn't start with arnold's adlmint.dll in the Application/bin folder (exits right away without a message)

the other way around, with the older adlmint in the arnold Plugins\bin\nt-x86-64, it crashes as before

JenusL commented 5 years ago

I tried to switch out adlmint.dll in Application/bin a couple of days ago but just as @RRClaus says, Softimage doesn't even get a splash screen for me in that case so I gave up on that. Interesting that the hack worked for you.

arnold-support commented 5 years ago

Note that my set up is probably different.

I never ran the Softimage installer, I just copied the Softimage folder from another drive (the partition table got corrupted so I couldn't boot up with that drive anymore)

All the Autodesk licensing stuff was installed when I installed Maya 2018.

That's probably why copying the newer adlmint.dll to the Softimage bin folder works on my machine

JenusL commented 5 years ago

Can the Core team make sure the correct one is loaded or is it something I should do?

arnold-support commented 5 years ago

It's not just adlmint.dll, I think it's the rest of the licensing framework that is installed on disk.

As I said, my setup is not standard, because I didn't run the Softimage installer, and all the licensing files on my machine were installed when I installed Maya (by the CLIC_x64_Release.msi installer included with the Maya download).

That's why replacing adlmint works on my machine...all the required dependencies on my machine match the newer version of adlmint

ReinhardC commented 5 years ago

One yet hackier way that worked for me is uninstalling SItoA, restarting XSI, renaming adlmint then reinstalling SItoA in the same session. Weird enough I even could render without watermark when checking "skip license check".

Further proof it's the older adlmint.dll (There is even a adlmint_libFNP inside the Softiimage bin directory so it seems some very similar problem has existed before)

ReinhardC commented 5 years ago

Found a way .. once again yet hackier 😵. Use a hexeditior like HxD to search for the string "adlmint.dll" inside AdClmHub_1.dll. Rename it there and rename the dll itself then Arnold will use the renamed one and it will work.

Not sure if a patched dll like this may be distributed though

JenusL commented 5 years ago

That last hack you found sounds better than the one before. But best would be if AD/SA could fix this in the core.

JenusL commented 5 years ago

Nothing was changed in Arnold 5.3.1.0. @stephenblair Any news?

ReinhardC commented 5 years ago

Not totally sure if this is how it works but I believe arnold core is a dll that loads the licensing dll that again loads the adlmint dll. If that last dll has been loaded into memory already and it has the same filename there might be nothing they could about it in the core. Then a fix would be to recompile the licensing dll to make it backwards compatible with the older xsi adlmint (like the one that was in SItoA 5.2.0 was). Altough it's probably easier to avoid the conflict altogether and use a different name for adlmint like in the hack. Just would have to get some sort of permission.

JenusL commented 5 years ago

Yeah I'm aware of how everything works. What AD could do is distribute the Arnold SDK with adlmint.dll already renamed. That's what I mean with "nothing has changed in 5.3.1.0". I would like to get some official word on what ADs stand on this issue is.

ReinhardC commented 5 years ago

Oh ok sorry for implying you didn't

JenusL commented 5 years ago

@stephenblair Sorry to bother you again, but I would really like to know if there's any news on this?

JenusL commented 5 years ago

So to recap, adlmint.dll used by Arnold is colliding with the same file in Softimage. The Softimage one is already loaded so that one is used. This leads to instant crash when trying to check out license in SItoA. Very ugly workaround is renaming adlmint.dll that comes with Arnold and edit AdClmHub_1.dll to point to the renamed dll. Best would be if the file was renamed in the SDK releases so it's fixed once and for all. Pinging @stephenblair, @sjannuz and @kikou to see if this issue is known internally and what the status is.

JenusL commented 4 years ago

Ok so Arnold 5.4.0.0 was released today and this still isn't fixed 😢

JenusL commented 4 years ago

Bumping this again. Can I at least get an answer if this is ever getting fixed?

sjannuz commented 4 years ago

I don't think this will ever be fixed, there is already a lot of energy going into licensing. If you are ok with the patch, let's go with that.

JenusL commented 4 years ago

Yeah I'm ok with the patch as long as you guys are.