Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KTX Textures Are Not Being Cached #14086

Closed
FlameSoulis opened this issue Sep 26, 2018 · 15 comments

Comments

@FlameSoulis
Copy link
Contributor

commented Sep 26, 2018

While exploring opportunities to improve bandwidth optimization (namely, making my avatar not >5MB to help make my avatar not a concern during the load tests), I found that the client seems to always request KTX and FST files according to my nginx logs. The FST files I can understand, but the FBX file doesn't seem to get any requests if I know the person who came into the domain had already seen me before. This also occurs if I change the avatar as well (i.e. my own client redownloads the KTX files).

At first, I thought it was simply a case where textures were not being cached, but upon using an avatar with PNG based textures, the only file that got requested upon change was the FST.

https://highfidelity.fogbugz.com/f/cases/18810/KTX-Textures-Are-Not-Being-Cached

@huffman

This comment has been minimized.

Copy link
Member

commented Sep 26, 2018

Hi @FlameSoulis,

Interface will download KTX files progressively, at increasing resolutions, so you can get the low resolution approximation of your scene much faster. During a normal KTX download, you should actually see multiple RANGE requests for the same file, as it downloads the higher resolutions.

There are 2 initial requests that we make for the beginning and end of the KTX - I don't believe we do anything to mitigate these requests, so that's an area we could improve. I am wondering, though, are you seeing more requests than that, or just those initial 2?

@FlameSoulis

This comment has been minimized.

Copy link
Contributor Author

commented Sep 26, 2018

As per the access logs, it seems to be just sending it out each time, even after the first appearance:

***.***.***.*** - - [26/Sep/2018:21:58:00 +0000] "GET [REDACTED]/Lyrekhetplush_07.fst HTTP/1.1" 200 719 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:23 +0000] "GET [REDACTED]/Lyrekhetplush_07.fst HTTP/1.1" 200 719 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:30 +0000] "GET [REDACTED]/Therion_Flow.fst?05 HTTP/1.1" 200 930 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:30 +0000] "GET [REDACTED]/head_r.ktx HTTP/1.1" 200 18291 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:30 +0000] "GET [REDACTED]/head_r.ktx HTTP/1.1" 200 18291 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/head_f_d.ktx HTTP/1.1" 200 167175 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/horns_d.ktx HTTP/1.1" 200 9523 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/horns_d.ktx HTTP/1.1" 200 9523 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/head_f_d.ktx HTTP/1.1" 200 167175 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/head_n.ktx HTTP/1.1" 200 208391 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/head_n.ktx HTTP/1.1" 200 208391 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/horns_r.ktx HTTP/1.1" 200 2392 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/horns_r.ktx HTTP/1.1" 200 2392 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/body_n.ktx HTTP/1.1" 200 238669 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/body_r.ktx HTTP/1.1" 200 18933 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/body_r.ktx HTTP/1.1" 200 18933 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/body_f_d.ktx HTTP/1.1" 200 596362 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/body_n.ktx HTTP/1.1" 200 238677 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/eye_d.ktx HTTP/1.1" 200 64461 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/eye_d.ktx HTTP/1.1" 200 64461 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/body_f_d.ktx HTTP/1.1" 200 596338 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/eye_n.ktx HTTP/1.1" 200 247350 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/eye_n.ktx HTTP/1.1" 200 247350 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/eye_r.ktx HTTP/1.1" 200 1282 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/eye_r.ktx HTTP/1.1" 200 1282 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/teeth_d.ktx HTTP/1.1" 200 29698 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/teeth_d.ktx HTTP/1.1" 200 29698 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/teeth_r.ktx HTTP/1.1" 200 8629 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/teeth_r.ktx HTTP/1.1" 200 8629 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/head_d.ktx HTTP/1.1" 200 154102 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/head_d.ktx HTTP/1.1" 200 154102 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/body_d.ktx HTTP/1.1" 200 492484 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/body_d.ktx HTTP/1.1" 200 492469 "-" "Mozilla/5.0 (HighFidelityInterface)"

This was done by switching to an avatar without KTX baking (Lyrekhetplush_07.fst) then back to the main avatar with KTX baking (Therion_Flow.fst?05) while in a domain by myself. Log files are generated from nginx, with default access log settings. Information redacted to avoid files from being downloaded and privacy.

@huffman

This comment has been minimized.

Copy link
Member

commented Sep 26, 2018

@FlameSoulis Does your HTTP server support Range requests?

@r3tk0n

This comment has been minimized.

Copy link
Contributor

commented Sep 26, 2018

@huffman I pinged his server with curl -I , and got this back:

Accept-Ranges: bytes

@FlameSoulis

This comment has been minimized.

Copy link
Contributor Author

commented Sep 26, 2018

Though I haven't specifically enabled it, it looks like it's functional:

root@ubuntu-s-1vcpu-3gb-sfo2-01-nonhifitest:# curl -I http://[REDACTED]/body_d.ktx
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 26 Sep 2018 22:41:03 GMT
Content-Type: application/octet-stream
Content-Length: 699260
Last-Modified: Tue, 26 Jun 2018 10:03:50 GMT
Connection: keep-alive
Keep-Alive: timeout=10
Vary: Accept-Encoding
ETag: "5b320f86-aab7c"
Accept-Ranges: bytes

curl: (6) Could not resolve host: xn--bytes=0-10-tw6e
root@ubuntu-s-1vcpu-3gb-sfo2-01-nonhifitest:# curl -I http://[REDACTED]/body_d.ktx -H 'Range: bytes=0-10'
HTTP/1.1 206 Partial Content
Server: nginx
Date: Wed, 26 Sep 2018 22:41:27 GMT
Content-Type: application/octet-stream
Content-Length: 11
Last-Modified: Tue, 26 Jun 2018 10:03:50 GMT
Connection: keep-alive
Keep-Alive: timeout=10
Vary: Accept-Encoding
ETag: "5b320f86-aab7c"
Content-Range: bytes 0-10/699260

In addition, here are the file sizes for the KTX files:

699260 - body_d.ktx
1398324 - body_f_d.ktx
349744 - body_n.ktx
43892 - body_r.ktx
174968 - eye_d.ktx
349744 - eye_n.ktx
43892 - eye_r.ktx
349744 - head_d.ktx
349744 - head_f_d.ktx
349744 - head_n.ktx
43892 - head_r.ktx
22052 - horns_d.ktx
 5664 - horns_r.ktx
43892 - teeth_d.ktx
11120 - teeth_r.ktx

It should be noted that gzip is enabled, so dispatched files will have a smaller bandwidth cost, as reported in the access logs.

@FlameSoulis

This comment has been minimized.

Copy link
Contributor Author

commented Sep 26, 2018

Realized this may also be about 100x easier if there is at least a non-redacted URL.

http://voxel.flamesoulis.com/ele/temp/hifiSpacemouse.dll

I don't have any file-specific rules enabled, so feel free to use that for any and all curl requests. Plus, feel free to also give it a whirl, as that's the recompiled Space Navigator plugin in its full working glory.

@huffman

This comment has been minimized.

Copy link
Member

commented Sep 26, 2018

Hmm, what did you see in your logs for the Range=0-10 request?

@FlameSoulis

This comment has been minimized.

Copy link
Contributor Author

commented Sep 26, 2018

Ask and you shall receive! (was actually curious myself)

***.***.***.*** - - [26/Sep/2018:22:26:00 +0000] "HEAD /[REDACTED]/body_d.ktx HTTP/1.1" 200 0 "-" "curl/7.47.0"
***.***.***.*** - - [26/Sep/2018:22:41:03 +0000] "HEAD /[REDACTED]/body_d.ktx HTTP/1.1" 200 0 "-" "curl/7.47.0"
***.***.***.*** - - [26/Sep/2018:22:41:27 +0000] "HEAD /[REDACTED]/body_d.ktx HTTP/1.1" 206 0 "-" "curl/7.47.0"
***.***.***.*** - - [26/Sep/2018:22:52:14 +0000] "GET /ele/library/spaceNavigator.js HTTP/1.1" 304 0 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:22:56:34 +0000] "HEAD /ele/afk_ring.js?01 HTTP/1.1" 200 0 "-" "curl/7.58.0"
***.***.***.*** - - [26/Sep/2018:22:58:36 +0000] "GET /ele/library/spaceNavigator.js HTTP/1.1" 304 0 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:23:03:36 +0000] "HEAD /ele/afk_ring.js?01 HTTP/1.1" 206 0 "-" "curl/7.47.0"
***.***.***.*** - - [26/Sep/2018:23:03:47 +0000] "HEAD /ele/afk_ring.js?01 HTTP/1.1" 206 0 "-" "curl/7.47.0"
***.***.***.*** - - [26/Sep/2018:23:12:50 +0000] "HEAD /ele/temp/hifiSpacemouse.dll HTTP/1.1" 206 0 "-" "curl/7.60.0"
***.***.***.*** - - [26/Sep/2018:23:13:13 +0000] "HEAD /ele/temp/hifiSpacemouse.dll HTTP/1.1" 206 0 "-" "curl/7.60.0"
***.***.***.*** - - [26/Sep/2018:23:14:22 +0000] "HEAD /ele/temp/hifiSpacemouse.dll HTTP/1.1" 206 0 "-" "curl/7.60.0"
***.***.***.*** - - [26/Sep/2018:23:14:41 +0000] "GET /ele/temp/hifiSpacemouse.dll HTTP/1.1" 206 11 "-" "curl/7.60.0"
***.***.***.*** - - [26/Sep/2018:23:14:46 +0000] "GET /ele/temp/hifiSpacemouse.dll HTTP/1.1" 206 11 "-" "curl/7.60.0"
***.***.***.*** - - [26/Sep/2018:23:14:49 +0000] "GET /ele/temp/hifiSpacemouse.dll HTTP/1.1" 206 11 "-" "curl/7.60.0"
@huffman

This comment has been minimized.

Copy link
Member

commented Sep 26, 2018

Thanks, That looks correct.

In your logs for the KTX requests it seems to be sending the entirety of every texture twice:

***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/head_n.ktx HTTP/1.1" 200 208391 "-" "Mozilla/5.0 (HighFidelityInterface)"
***.***.***.*** - - [26/Sep/2018:21:58:31 +0000] "GET [REDACTED]/head_n.ktx HTTP/1.1" 200 208391 "-" "Mozilla/5.0 (HighFidelityInterface)"

That is bizarre. I'll do some more testing locally. Thanks for reporting this!

@huffman

This comment has been minimized.

Copy link
Member

commented Sep 26, 2018

Also, to clarify, both of those requests should be Range requests that are smaller than 15KB, so something is wrong there. They are also returning a 200 instead of a 206.

@FlameSoulis

This comment has been minimized.

Copy link
Contributor Author

commented Nov 18, 2018

So I ran wireshark on my requests, and I am seeing 206 requests now, but I am seeing the following pattern:

First Request
Range: bytes=0-999

Second Request
Range: bytes=-5516

After looking things over, I found that my server's setting to enable gzip on KTX is a double-edged sword: it does lower the size when downloaded as a whole, but disables 206 requests.

That being said, despite this, the files are still not being cached, as the downloads still continue even after disabling gzip (just now I have a whole bunch of 206 requests, so at least that is working).

Current header response (post removal of gzip for image/ktx):

HTTP/1.1 206 Partial Content
Server: nginx
Date: Sun, 18 Nov 2018 21:56:32 GMT
Content-Type: image/ktx
Content-Length: 10000
Last-Modified: Tue, 26 Jun 2018 10:03:49 GMT
Connection: keep-alive
Keep-Alive: timeout=10
ETag: "5b320f85-155634"
Expires: Sun, 25 Nov 2018 21:56:32 GMT
Cache-Control: max-age=604800
Content-Range: bytes 0-9999/1398324

curl -H "Range: bytes=0-9999" -H "Accept-Encoding: gzip" -I http://{REDACTED}/body_f_d.ktx

@FlameSoulis

This comment has been minimized.

Copy link
Contributor Author

commented Jan 19, 2019

Not sure if it was perhaps fixed or not, but I am noticing the following pattern:

If an avatar/model that is baked is being loaded, it will do a request on the KTX texture for 1000 bytes with a 206 request, followed by another 5516 bytes with another 206 request.

If the user has seen the model before, and in theory has it cached, it will no longer request that file. Otherwise, it will proceed to do a full download via 206.

I don't have a header response analysis yet, but from what I can see, it is working but is a bit odd it's breaking the requests into two separate initial checks.

@FlameSoulis

This comment has been minimized.

Copy link
Contributor Author

commented Jan 19, 2019

Apperently this pattern of 5516 bytes is related to the following:

static const int HIGH_MIP_MAX_SIZE = 5516;

Namely:

    if (isHighMipRequest) {
        static const int HIGH_MIP_MAX_SIZE = 5516;
        // This is a special case where we load the high 7 mips
        ByteRange range;
        range.fromInclusive = -HIGH_MIP_MAX_SIZE;
        _ktxMipRequest->setByteRange(range);

So, it seems that the KTX textures are triggering "HighMipRequests."

@ZappoMan

This comment has been minimized.

Copy link
Contributor

commented Jan 22, 2019

Thanks for your research on this @FlameSoulis - I am checking with the team on the status of this issue.

@FlameSoulis

This comment has been minimized.

Copy link
Contributor Author

commented Apr 2, 2019

As per speaking with Sam, it seems the issue is resolved:
Initial download:

{REDACTED} - - [02/Apr/2019:07:13:44 +0000] "GET {REDACTED PATH}.fst?03 HTTP/1.1" 200 922 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:45 +0000] "GET {REDACTED PATH}/Lyrekhetplush.baked.fbx HTTP/1.1" 200 98302 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:45 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:45 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:45 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:45 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:45 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:45 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:45 +0000] "GET {REDACTED PATH}/scripts/flow.js HTTP/1.1" 200 9801 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:46 +0000] "GET {REDACTED PATH}/scripts/wag.js HTTP/1.1" 200 1021 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:46 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 8192 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:46 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 16384 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:46 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 8192 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:46 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 32768 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:46 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 32768 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:46 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 65536 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:47 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 131072 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:47 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 131072 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:47 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 262144 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:47 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 524288 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:47 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 1048576 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:48 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 4194304 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:13:49 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 524288 "-" "Mozilla/5.0 (HighFidelityInterface)"

Post download in the same session:

{REDACTED} - - [02/Apr/2019:07:15:33 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:15:33 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:15:33 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:15:33 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:15:33 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:15:33 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"

Post download, post relog:

{REDACTED} - - [02/Apr/2019:07:22:05 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:22:05 +0000] "GET {REDACTED PATH}/textures/lyrekhet_s.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:22:05 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:22:05 +0000] "GET {REDACTED PATH}/textures/lyrekhet_n.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:22:05 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 1000 "-" "Mozilla/5.0 (HighFidelityInterface)"
{REDACTED} - - [02/Apr/2019:07:22:05 +0000] "GET {REDACTED PATH}/textures/lyrekhet_d.ktx HTTP/1.1" 206 5516 "-" "Mozilla/5.0 (HighFidelityInterface)"

Looks like it is properly obeying the 1000, 5516 checks and is not downloading the entire KTX files after initially already downloaded.

Issue resolved!

@FlameSoulis FlameSoulis closed this Apr 2, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants
You can’t perform that action at this time.