Heads up for networking oddities


#1

We just merged a large pull request for the new Asset Transfer Protocol (ATP) and reliable networking via UDP. If you’re interested, you can view the pull request here.

Expect some more information on how to use ATP on your domain in the near future. We’d first like to do some testing in the High Fidelity domains to make sure the new system is performing as we expect.

For now, make sure you update your Interface clients and servers (Stack Manager or domain-server/assignment-client), and keep your eyes peeled for any networking oddities (problems connecting or downloading assets, even over HTTP).


#2

By any chance, did the assignment-client type for ATP serving change from -t 3 to something else? I’m about to scour source, but, thought I’d take a chance and ask first. I have an AC running -t 3 on LAN but only get a greyed out menu option for uploading via ATP in Interface.

Oh - probably never-mind, it seems it’s not for us yet.


#3

Did you enable it via your stack manager settings.: http://localhost:40100/settings/#asset_server


#4

No, I’m an idiot who looked at that page a dozen times and never saw that new section… Thank you. : )


#5

You need to click “Show Advanced”. We will get a proper write up on how to enable the feature shortly.


#6

Yeah, got it working. Now working out permissions issue. Thanks again.

So far it’s a bust for me. Have it enabled, see it listed in domain-server node list. If I attempt an upload I get an error dialog;

I can create “classic” HTTP referenced entities at location. Interface log shows;

[DEBUG] [09/08 21:13:44] Selected filename for upload to asset-server: QUrl( "file:///C:/Users/xxx/Documents/Blender/Tree/tree6.fbx" )
[DEBUG] [09/08 21:13:44] New interval 1

Nothing shows in log for assignment-client ATP server or domain-server at time of attempt.

It’s probably has something to do with running stack in a docker container and not a huge issue for me as I’m fine continuing with HTTP. I can see the new asset directory under resources with proper perms to stack processes but it remains, obviously, empty. Just wanted to see what it’s all about.


#7

Yeah i got the same permissions thing ^


#8

Well, a fun fact. If you place an fxb file in resources/assets and restart stack it renames to the hashed filename then if you start edit, upload model button and use atp:some_really_long_crypto_looking_name.fbx it works fine. Those names seem to be an sha256 digest of file’s content which is very cool and something I spoke about many months ago as a way to work toward a no duplicates asset store. If you end up with more than 1 asset with same hash value then they’re really the same file so you automatically cull dupes.

I placed tree2.fbx in said folder, restarted stack and it changed to cd3f515b706ec2c37986b08b5b0966197f53615407ffa0ab746698cd8af09b84.fbx

I added a new model just like I would with old way and instead of http://someserver.com/somemodel.fbx I used;

atp:cd3f515b706ec2c37986b08b5b0966197f53615407ffa0ab746698cd8af09b84.fbx

Of course there’s the thing with textures not working if they’re external so watch out for it, other than that it’s cool-esque.


#9

We’re looking into the permissions issue for uploading on windows.

As @OmegaHeron discovered - you can drop assets into resources/assets and the asset-server will pick them up when it relaunches.

We currently do not support relatively referenced textures - we’re working on the solution to that now!


#10

@b I’m running Linux on stack side, Windows on Interface side just to be clear.


#11

@b can obj files for vhacd-util generated physics be done via ATP yet?

Heron is about 90% ATP now - still need to spool up an ATP AC on well connected box, but, since I had so few objects it wasn’t too bad writing a hack to convert HTTP -> ATP links and modify models.json.gz accordingly.


#12

Anything you can put in a URL for that doesn’t have relative-path linked files internally should work!


#13

@b Thanks 100% ATP in a few then : )

100% ATP achieved. Fun on LAN but likely a slow thing for externals. Moving to docker instance on well connected machine next. Been meaning to do that anyhow since I have isolated containers worked out.


#14

One thing we will be working on fixing shortly that will hurt you having gone 100% ATP is that the messages sent to you from the asset-server are sent on a first-in-first-out basis. So you need to wait for the first asset to arrive to you before the second one can be sent.


#15

@b Not a problem - I’m setup to instant revert if it goes badly. I only have 20ish or so assets in place so it’s not a huge penalty. lol


#16

Really glad for that instant revert thing : )

A tale of 3 machines…

First, Windows 7 64 bit running docker in VM - load my stack docker image, start and all is good ATP just works flawlessly.

Second, imac running Ubuntu 15.04 - stack running native on it - no ATP assets served - log shows client connecting but it doesn’t serve any content. This is still on my LAN same as windows machine.

Third - same imac running docker image identical to that ran on windows in vm. ATP server sends first few assets then simply exits, no core dump or log entry - it just goes poof.

Fourth - Mac Mini at data collocation facility. Running OS X 10.8.5 Virtual Box 5.0.4 - Ubuntu 14.04.3 - Docker. This is essentially same setup as Windows machine that works. Serves a few assets then AC just quits, again no log entry or core dump, just gone.

Fun times.


#17

I’ll try first to repro the crashes it sounds like you’re having in those third and fourth examples - thanks!


#18

I’m also going to dig more and will post should I find anything.


#19

I had some issues after this came out. The -p parameter of assignment-clients changed silently to --server-port , problems gone after dealing with that.


#20

Good to know - but, I don’t use that option. Since I’m running in containers with isolated network vs overlaying it on host’s network stack I use full automatic routing so it can traverse all the layers proper.