systemetric / shepherd

👨‍🌾 Shepherd is the code management system used on the RoboCon brains
Other
2 stars 1 forks source link

Preview freezes #15

Closed shardros closed 2 years ago

shardros commented 4 years ago

The preview does freeze. I'm fairly sure that it is a problem with the file being written to as it is read which means that the function throws an error which isn't caught and so stops. The bellow was observed in the console when the preiw broke. This should be fixed.

image

shardros commented 4 years ago

@mrbbot it would be nice to fix this for RoboCon 2020 is there a quick/dirty fix to apply as we only have a week.

WillMunns commented 2 years ago

Seems this is far worse, the preview only shows a static image now, so not even one picture is shown?

I don't know if this is something that's changed recently or a side effect of overlay using tmpfs on the static directory (to reduce sdcard writes) The image does work in robot.go/run.

I'll report back once I have checked my FS hacks aren't upsetting things

shardros commented 2 years ago

I've not seen this for a little while, would it be possible to follow these steps to get a logs dump from the browser if you are able to reproduce the issue: https://help.mypurecloud.com/articles/gather-firefox-console-log/

Or similar for whichever browser is the problem

shardros commented 2 years ago

Really we should move this whole thing over to sockets and I think alot of these problems would go away rather than try and debug this weird system

shardros commented 2 years ago

I thought this was working? When @WillMunns tested this a few weeks ago?

WillMunns commented 2 years ago

Yup, in the mini-comp shepherd was flashing and working, but occasionally getting stuck.

With the "release" patch the image does not receive any updates at all.

I don't know when the change slipped in, but I pulled a new shepherd and I guess something significant had changed - I didn't see the issue till we got to that bit in the workbook :(

WillMunns commented 2 years ago

I don't see anything in the log before running, but no flashes happen.

Once I hit go the logs fill up with

22:31:07.079 TypeError: NetworkError when attempting to fetch resource. bundle.js:24:1289497

These messages expand to

22:31:07.079 TypeError: NetworkError when attempting to fetch resource. bundle.js:24:1289497 o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24 (Async: setTimeout handler) o http://robot.go/editor/bundle.js:24 (Async: promise callback) o http://robot.go/editor/bundle.js:24 o http://robot.go/editor/bundle.js:24

But I can't make head nor tail of that

shardros commented 2 years ago

I think I have time tonight, I'll have a look then

shardros commented 2 years ago

Is the release patch the master branch?

WillMunns commented 2 years ago

Cheers.

The release code is indeed the tip of master.

shardros commented 2 years ago

@WillMunns what is the commit ID of the minicomp so that I can binary search between then and HEAD

WillMunns commented 2 years ago

Sorry, I don't have that because the script rips all the git details out because I'm told that otherwise it will leak the private tokens on the brains.

By date, it will be at or just before 30 Sep.

shardros commented 2 years ago

That's perfectly fine. I just need the rough date.

On Tue, 2 Nov 2021, 14:54 Will, @.***> wrote:

Sorry, I don't have that because the script rips all the git details out because I'm told that otherwise it will leak the private tokens on the brains.

By date, it will be at or just before 30 Sep.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/systemetric/shepherd/issues/15#issuecomment-957750547, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADFYNL7WLY7PNXQZCCSSGHDUJ73RBANCNFSM4I6I2WLQ .

WillMunns commented 2 years ago

"I think the poetry is safe enough" => bites me in the arse

shardros commented 2 years ago

In the process of updating the docs the sheep binarries got modified rebuilding now, correctly.

Well not technically binarries "compiled javascript"

shardros commented 2 years ago

For reasons to do with dependancy conflicts in my build enviroment I am unable to build sheep right now. Giving up for today as brain is dead. The fix is:

diff --git a/sheepsrc/app/components/sidebar/logs/Camera.vue b/sheepsrc/app/components/sidebar/logs/Camera.vue
index e1ef910..2a56c45 100755
--- a/sheepsrc/app/components/sidebar/logs/Camera.vue
+++ b/sheepsrc/app/components/sidebar/logs/Camera.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="camera-preview">
-      <img :src="url + '?rnd=' + cacheKey">
+  <div id="camera-preview">
+      <img :src="url + '?rnd=' + cacheKey" :key="cacheKey">
   </div>
 </template>

@@ -19,11 +19,14 @@ export default {
     }
   },

-  created () {
-    this.inverval = setInterval(function(){
-      this.cacheKey = +new Date();
-    }, 1000);
-
+  mounted: function () {
+    window.setInterval(() => {
+      try {
+        this.cacheKey = +new Date();
+      } catch(e) {
+        console.log(e);
+      }
+    }, 1000)
   },

   destroyed() {
@@ -38,7 +41,7 @@ export default {
 @import "../../../variables";

 //noinspection CssOptimizeSimilarProperties
-#camera {
+#camera-preview {
   width: 100%;
   height: $sidebar-width * 0.5625;
   background-size: contain;

But I can't compile sheep right now D:

Will have another stab at it tomorrow.

shardros commented 2 years ago

I have no idea why I could compile sheep a few weeks ago and not now?!??!

mrbbot commented 2 years ago

Are you using Node 8.1.0? (yikes that's old now 😅) May want to try deleting node_modules and reinstalling?

shardros commented 2 years ago

Yes to using node 8.1.0 its just the version in the package.json. I'll give reinstalling the dependancies a go, I didn't really want to update the node version because I'm scared I'm going to break something else in some stuble way and not notice because we don't have any regression testing.

shardros commented 2 years ago

It would appear that the package-lock.json has changed and now uses some more modern packages because not all of our versions are pined they are specified as this or higher. However the version of some of the packages no longer compiles sheep right. I've reverted back to the package.json and package-lock.json from commit ce3a3d75975c3fff939eecedbd7909602f65a423 and it builds. If you are interested the reason sheep won't build is in the attached logs. sheep_wont_build.log .

shardros commented 2 years ago

We should build sheep in github actions or CI or something so this can't happen again and any modifications we make we at least know it builds.

WillMunns commented 2 years ago

Looks good right now