JohnnyRS / PandaCrazy-Max

PandaCrazy Chrome Extension for Amazon Mturk
21 stars 8 forks source link

Panda job collection freezes occasionally #50

Open Balachandarsmr opened 2 years ago

Balachandarsmr commented 2 years ago

I am running 1 job on panda crazy. After some minutes it freezes (Top right corner of Job card don't blink. The fetcher count stops).

If i run another panda job together, the frozen job still frozen and another job runs. After some seconds/minutes frozen job starts collecting.

Job on panda crazy freezes occasionally by following actions

aberfan commented 2 years ago

I've had similar behavior happen and thought it was my imagination. Specifically, I've had a search panda that just 'freezes'.

Or, won't even fetch despite being enabled: image

The only thing in console is: queueOptions ListenerClass.js:8

JohnnyRS commented 2 years ago

This is a problem with a mistake in the collection of the newest HITs from the MTURK search page. I have a fix for it in the next update. I will also have it check for any jobs stuck which was causing this problem as well. Hoping to have the new version updated on github by today and then if everything is working I'll update it on the chrome store by tomorrow.

Balachandarsmr commented 2 years ago

Version:0.9.41.0

Another bug

JohnnyRS commented 2 years ago

The new version 0.9.43.0 will fix the deleting search triggers bug. It also may fix the freezing problem. Be sure to check the panda options to make sure none of the stop collecting options are set incorrectly.

Balachandarsmr commented 2 years ago

Panda job still stucks in version 0.9.43.0 after ran trigger for some seconds IMG_20211110_010058 Is anything wrong with settings

JohnnyRS commented 2 years ago

With those options the extension will create a panda job when it finds a HIT that will stop collecting after 2 minutes if the user pushes the collect button on the panda job. Do you really want that? If you want it to be turned on forever after manually starting it then change the 2 to a 0. Also any panda jobs created or started by the search trigger will only temporary collect for 90 seconds and then stop. You can set it to 6 hours in seconds if you want but it's best to let the search trigger do the work instead of using up a valuable panda job space.

So does the panda job stop collecting or does it get stuck before the 90 seconds or 2 minutes are up? The search trigger will continue running looking for any new HITs even after the panda job stops. If the panda job stops the collect button will no longer be green. If a panda job is stuck then the collect button is still green but the fetch numbers are not going up and the background color is not red. If the background color is red then it's waiting for the limits you have set for the queue.

Balachandarsmr commented 2 years ago

Out of 10 attempts trigger panda stuck only 2 times. It stuck after 10 fetches sometimes it stuck at 0 fetch.

If i turned on triggered panda job manually after automatic time out it stuck after some mins. I think it's due to panda job and respective search trigger job running at the same time?

JohnnyRS commented 2 years ago

I haven't been able to duplicate this problem on the current version. Check the status log tab on the bottom to see if it is showing the panda job and the elapsed stat is changing. If you have one panda running it should show the elapsed time at around 1.0s if you have the panda timer at 1000ms. If you have 5 panda's running then it should show all 5 jobs and each one should show around 5s for the elapsed stat. There shouldn't be any conflict between a panda job and the search trigger running at same time. There could be conflicts if you have a search trigger and a search job running with the same requester ID running at the same time though but I tried to make that not happen. Slow connections or computers may cause problems too.

Balachandarsmr commented 2 years ago

I tweaked my panda job settings. I set stop collecting after (minutes) to zero. Now search trigger didn't stuck.

JohnnyRS commented 2 years ago

The settings for the search trigger is probably wrong. Here are the options I just tested and it works the way you want: 3600 SearchOptions PandaJobOptions There is a bug that limits the Temporary Duration to 3600 (1 hour) but it should be 21600 (6 hours). In the next update that will be fixed. Also there seems to be a bug where creating a search trigger doesn't copy the correct Temporary Duration also. So recheck your search trigger options and it should work for 1 hour. Later you will be able to go for 6 hours if you want.

aberfan commented 2 years ago

The only difference here is duration, which I have at '0'. What's that mean? I assumed 0 would do the most time, since that's the sanest default. Is that not the case?

Am I supposed to do anything with the "searchcrazy" thing? I never do anything on that screen. Do I now have to worry about that?

I appreciate greatly what you do so please don't take my grumpiness as being ungrateful.

JohnnyRS commented 2 years ago

The temporary duration is the one that limits how much time a panda job that is created or started by a search trigger will stay on. If you set it at 0 it will use the default time of 12 seconds I believe. It is a temporary duration only used at the start. It doesn't get saved to the panda job options so manually starting the panda job should last forever. Like I said it only allows up to 3600 but next update will allow 21600.

You can set the Default temporary duration in the search options on the searchCrazy page which is set at 18 seconds. Set that option so every search trigger created will use that value. I do recommend to keep it low and just change the triggers that you want to last a long time. Also you might want to check out the advanced section of the wiki describing the new advanced search jobs which may help you get popular HITs especially if you are only using the search jobs on the panda page. More stats for search jobs will be coming in the next update too.

aberfan commented 2 years ago

This is very confusing. To make sure I understand correctly, I need to go to a screen I don't ever use, to edit the options there? Do I need to also turn "SearchCrazy" on?

If you leave "Temporary Duration" at 0, instead of setting it to the maximum value, it does what? There are so many "duration" entries that it's very difficult to keep track of what's what, and it'd be pointless to have this actually be at 0, so I'd assume 0 would mean 'max' without having to figure that out.

What's the difference between search options "Temporary Duration (seconds)" "The temporary number of seconds for HITS found to collect before stopping" and Panda Job Options "Stop Collecting After (Minutes)" "The number of minutes for HITS to collect before stopping". What is the temporary number supposed to be???!

I don't suppose you know off-hand what the last version was this year before you started changing all these things?

I don't have need of the advanced search jobs, because there are only two requesters now I run a search RID on. The only feature I wish to have is the ability to work on hits from the queue in multiple tabs, like the old script did. If that hadn't broke I'd probably go back to just using the script, in fact.

Right now being able to go to six hours isn't even an issue when it's been the case it can't even see the hits drop in the first place and when it does, only does 17 or so fetches unless you tweak multiple settings! Very frustrating!

If I set up a search for a RID in PandaCrazy it makes no sense at all that settings in SearchCrazy which I have to also 'start', somehow affect that. It's non-intuitive and unclear. If there are options that affect the things on the tab that says "Panda Crazy Max" then I should be able to access those options there.

I simply want the following scenario: 1) I have a requester I know any tasks which drop I want to do, or at least try to do, and I have a RID, so I create a RID search. 2) A panda is created if the RID search sees a task by the requester. 3) The panda goes on forever until I tell it to stop, 3a) Which because you feel users are stupid and shouldn't be allowed to do this, you've compromised and will allow 6 hours. 3b) So I should have a panda going on until I stop it, or 6 hours, whichever happens first (when the bug is fixed.) 4) 1 and 2 continue until I turn it off.

Can PC go back to allowing anyone else also having enjoyed this chain of execution to do so again, without having to learn to tweak a lot of other settings unrelated to goals of doing this? After all, stupid users hardly should be expected to do all that when they're don't know better than you how long they want things to run!

JohnnyRS commented 2 years ago

I had to make the changes because I was getting a lot of complaints about users having lot of panda jobs running at the same time and they didn't realize that was happening. Users are not stupid but I am trying to cater to new and expert users at the same time. I have never called users stupid. Please stop. :(

I have to make the changes due to chrome forcing extensions to follow their new rules in 2023. So if you keep using the old versions it will stop running in 2023.

I will have the search options from the search page copied to the panda page in a new version so you don't have to touch the search page.

The temporary options are only used for the search jobs and they only get used at the start of the panda job collecting. There is only one setting you need to change to make it do what you want. Just change the Temporary Duration (seconds). If you want a panda to go on forever then stop it and start it again.

aberfan commented 2 years ago

Changing because of Chrome sounds interesting; is there somewhere I can read up more about that?

What does the "Stop after minutes" in the panda tab do? I'm confused what the point of that if temporary duration is the field.

It seems many developers put arbitrary limits on programs to protect users from themselves. Another thing I use that's a small program requires actually recompiling to simply change a rate limit for typing. The thing here that would truly be appropriate is to allow '-1' to mean "No limit". It's what I've thought 0 was, since almost every program I've used it is what it means. But also I'd say it'd be really helpful not to have so many different fields. When you turn on a search, that runs forever, right? So it should be clear what happens with actual pandas in a future build: When one is created, what fields actually are like if you had just manually added the panda instead of a search finding it.

Thank you for listening to the feedback!

JohnnyRS commented 2 years ago

In 2023 all chrome extensions not updated to the new rules will not work. This extension uses a lot of stuff that will not work anymore so I had to change a lot of things and it's still not complete yet. Chrome V2 to V3

Stop after minutes option for a panda job was requested a long time ago. Some requesters only drop HITs for an hour so users wanted to have the panda job stop after an hour. To have it run forever leave it at 0.

Actually there are many things a user can change with the options that will cause a problem collecting HITs like running 100+ panda jobs at once and I didn't write anything to stop that. The main thing I limit is the minimum timer value to protect the extension. If a user wanted to put 100ms for the timer that could be very bad and may cause MTURK to cancel their account. I would feel responsible and the community would label the extension responsible too like other scripts got.

You are asking to have a no limit on an automatic process starting panda jobs which breaks my personal rule of automation needs limits. I already raised the max value to 6 hours. I can go further but I will not break my main rule and I had examples of new users finding dozens of panda jobs running at the same time without them knowing so they stopped using the extension. That is why I fixed that bug.

aberfan commented 2 years ago

That manifest change looks complicated, especially the service worker stuff from background pages.

I'm still really confused about the stop after minutes and the temporary duration. Which of these things controls how long a panda runs?

Yes, it'd be bad to have a job doing 100ms ever. Whatever the HIT isn't worth the risk there.

I'm fine with 6 hours, because at some point I'd just manually stop and restart, and which point, it'll run forever. My automation needs are such that I occasionally sleep or run out to do an errand, and I'm not away from checking more than 3 hours. I don't like leaving things unattended, so my previous problem was that if I didn't happen to look within an hour, a panda created by a search trigger would just stop. Something doing something I didn't ask it to do for my own good is disturbing, even though it seems many people prefer that sort of dominance. It's pretty moot at the moment since it doesn't seem like the search trigger creates pandas right now for me.

And I definitely understand with users, but I'll never understand the stance of not allowing people who want to shoot themselves in the head the ability to do so, when as far as I know, it's not more complicated than a line of code or so checking a value. It doesn't even have to be documented. But this is fine. If it was something I cared enough about, I'd do the popular thing of learning to code and fork it, and just add the single line myself.

Thank you for all the information and instruction.

Balachandarsmr commented 2 years ago

Panda jobs slowing down for unknown reason. I ran 2 pandas in panda crazy and search crazy is running. It's not due to search trigger. No search trigger panda is not created in panda ui. But regular pandas slowing down. This slow down happens without search crazy IMG_20211117_221249 This issue happens rarely. IMG_20211118_232332 IMG_20211119_210515

JohnnyRS commented 2 years ago

I'm still really confused about the stop after minutes and the temporary duration. Which of these things controls how long a panda runs?

And I definitely understand with users, but I'll never understand the stance of not allowing people who want to shoot themselves in the head the ability to do so, when as far as I know, it's not more complicated than a line of code or so checking a value. It doesn't even have to be documented. But this is fine. If it was something I cared enough about, I'd do the popular thing of learning to code and fork it, and just add the single line myself.

Yes with the new manifest stuff I need to move everything out of the background to the panda page so I'm slowly moving things so no mistakes happen. The service workers might help with speeding up the database in the future.

The stop after minutes does exactly what you don't want to do so don't worry about it and leave it at 0 which means run forever. It is used if you WANT the panda job to stop after a certain amount of time. Some HITs only drop for an hour or two so no point in having them run for the whole day and instead of remembering to turn them off the extension will stop it for you.

There is plenty of stuff in the extension that can shoot someone in the head but it is allowed. I may give warnings or try to explain the consequences of things in the wiki. The rule for automation needs a limit is so things won't get out of control which can happen fast. But really any user input needs to be checked and have restrictions because things can get messy if users type in a large number or characters where numbers should be typed and that's just good programming.