-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Tensorboard 2.7 seems to be broken on Safari #5489
Comments
Verified can reproduce on my machine at |
Safari |
Hi @severo Sorry for the trouble. We will gladly accept community contributions here! The first step would be to bisect between 2.6 and 2.7 to see what change triggered the bad Safari behavior. Looking at the error location It's probably related to the move to our While support for Safari is best effort (per README) this is a significant enough failure that we'll want to fix this. Aside, I've verified that this is also broken at the current HEAD, so it's not something that we've since fixed.
|
Looks like we're not the only ones that got stung by this with three.js |
Awesome! More evidence that we're looking at a dep issue for |
https://stackoverflow.com/a/67530515/7351594 tells that the issue is resolved with |
Thanks @severo and @bileschi for your investigation. It saved me quite a bit of time. I agree with the comments that this problem has surfaced in Angular but that we already have the versions of three and Angular that should solve the problem. From further investigation, it seems the underlying problem is actually a slight incompatibility between terser and three. Angular worked around the problem by modifying their webpack terser config in this change: We don't use webpack in TensorBoard, though. So although the root cause and the final error are the same, the path between the two is different. We explicitly run terser on our js lib. Our config is here: https://github.com/tensorflow/tensorboard/blob/2.7/tensorboard/defs/terser_config.json If, like angular/angular-cli@2c2b499, I modify the passes variable from 3 to 2, the problem is not resolved. If I modify it from 3 to 1, though, the problem is resolved. So we have a possible workaround. I'm going to spend more time thinking about whether it is the right change to make. I'll also consider submitting an issue to three.js to see if they can fix things on their side in parallel. |
…mpatibility (#5495) Users have reported problems loading TensorBoard in Safari: #5489 Thanks to @severo and @bileschi we were able to identify the problem to an incompatibility between threejs (which we use for WebGL rendering) and terser (which we use for minimizing/optimizing our code). Angular encountered this problem last year and worked around it by changing their terser config by reducing number of passes from 3 to 2: * angular/angular-cli#21107 * angular/angular-cli@2c2b499 In our case I have to reduce the number of terser passes from 3 to 1. For some reason reducing to 2 does not solve the problem. This change surprisingly appears to reduce binary size. Before this change the size of index.js is 7672844 bytes. After this change the size of index.js is 7670992 bytes -- reducing binary size by 1852 bytes.
…mpatibility (tensorflow#5495) Users have reported problems loading TensorBoard in Safari: tensorflow#5489 Thanks to @severo and @bileschi we were able to identify the problem to an incompatibility between threejs (which we use for WebGL rendering) and terser (which we use for minimizing/optimizing our code). Angular encountered this problem last year and worked around it by changing their terser config by reducing number of passes from 3 to 2: * angular/angular-cli#21107 * angular/angular-cli@2c2b499 In our case I have to reduce the number of terser passes from 3 to 1. For some reason reducing to 2 does not solve the problem. This change surprisingly appears to reduce binary size. Before this change the size of index.js is 7672844 bytes. After this change the size of index.js is 7670992 bytes -- reducing binary size by 1852 bytes.
…mpatibility (#5495) Users have reported problems loading TensorBoard in Safari: #5489 Thanks to @severo and @bileschi we were able to identify the problem to an incompatibility between threejs (which we use for WebGL rendering) and terser (which we use for minimizing/optimizing our code). Angular encountered this problem last year and worked around it by changing their terser config by reducing number of passes from 3 to 2: * angular/angular-cli#21107 * angular/angular-cli@2c2b499 In our case I have to reduce the number of terser passes from 3 to 1. For some reason reducing to 2 does not solve the problem. This change surprisingly appears to reduce binary size. Before this change the size of index.js is 7672844 bytes. After this change the size of index.js is 7670992 bytes -- reducing binary size by 1852 bytes.
Sure! I thought you would close the issue by yourself. Closing now. I've followed the work you did so quickly on this bug, it works perfectly, thanks! |
Thanks @severo four double checking! That's my bad: Indeed I probably should have just closed this issue myself. |
…mpatibility (tensorflow#5495) Users have reported problems loading TensorBoard in Safari: tensorflow#5489 Thanks to @severo and @bileschi we were able to identify the problem to an incompatibility between threejs (which we use for WebGL rendering) and terser (which we use for minimizing/optimizing our code). Angular encountered this problem last year and worked around it by changing their terser config by reducing number of passes from 3 to 2: * angular/angular-cli#21107 * angular/angular-cli@2c2b499 In our case I have to reduce the number of terser passes from 3 to 1. For some reason reducing to 2 does not solve the problem. This change surprisingly appears to reduce binary size. Before this change the size of index.js is 7672844 bytes. After this change the size of index.js is 7670992 bytes -- reducing binary size by 1852 bytes.
…mpatibility (tensorflow#5495) Users have reported problems loading TensorBoard in Safari: tensorflow#5489 Thanks to @severo and @bileschi we were able to identify the problem to an incompatibility between threejs (which we use for WebGL rendering) and terser (which we use for minimizing/optimizing our code). Angular encountered this problem last year and worked around it by changing their terser config by reducing number of passes from 3 to 2: * angular/angular-cli#21107 * angular/angular-cli@2c2b499 In our case I have to reduce the number of terser passes from 3 to 1. For some reason reducing to 2 does not solve the problem. This change surprisingly appears to reduce binary size. Before this change the size of index.js is 7672844 bytes. After this change the size of index.js is 7670992 bytes -- reducing binary size by 1852 bytes.
Environment information (required)
Please run
diagnose_tensorboard.py
(link below) in the sameenvironment from which you normally run TensorFlow/TensorBoard, and
paste the output here:
Diagnostics output
For browser-related issues, please additionally specify:
Version 15.2 (17612.3.6.1.6)
Issue description
Works on Safari
Does not work on Safari
Error in the console:
The text was updated successfully, but these errors were encountered: