Program white-screening all of a sudden - electron

I've been working for a few days on an electron application. When I was done working for the day yesterday, the program was working and running just fine. I came in this morning to start working on it again, and now all of a sudden partway through the program it just whitescreens now. I have not changed anything from the time of working on it last (last known working) to current time.
I do not see any errors being logged to the powershell console after running npm start (Program does not work packaged either), and when I use inspect element it just says:
DevTools was disconnected from the page.
Once page is reloaded, DevTools will automatically reconnect.
But it just sits on this white page forever.
This page has quite a lot of code (531 lines), but I am completely unable to pinpoint the problem because there are no errors logged. That said, I began taking pieces out of my code trying to get it to work, and I was able to narrow it down to the code below.
What can I do to fix my application?
This is the code I narrowed it down to, when I comment out this code, the page runs fine.
var audio = require('win-audio').speaker;
weirdly enough, this is one of the first pieces of code that I had written in this page of the application, and it has worked until just today.
I just found out that if I plug in some speakers, the program no longer whitescreens. But this isn't really a good fix, because this program will be ran on hundreds of computers a day that may or may not have speakers.

UPDATE::
Ok, I think I have fixed it. To try it out:
Download my fork at: https://github.com/11AND2/win-audio
In your terminal change dir (cd) into the directory e.g. "cd C:\...\win-audio"
run command "npm run install" - this rebuilds the module
To test it run "node sample.js" and activate/disable your audio devices
If at any point you want to check if the device is alive just run
var audio = require('win-audio').speaker;
var _vol_alive = audio.get();
if (_vol_alive === -999) {
console.log("this device is dead :-(");
}
in your application. Please note that I have not changed the API at all so there should be no need to change your application code.
Please give me a heads up if the fix works for you so I can create a pull request for the fix. I am not the creator of this plugin, all my changes are public domain.
DEPRECATED::
Ok, I have found a fix for you. Would it be ok if:
var audio = require('win-audio').speaker;
returns -1 if no device is found?
So you could do:
if (audio !== -1) {
audio.set(30);
}
Please give me a short heads up and I will post the implementation route.

Related

"Cached element do not exists in DOM" when run Appium with Robot Framework

I'm working on automated test using Appium with Robot framework on Android device. I create schedule run on Jenkins. My test flow is entering some data in page A and submit, then switch to page B to check the result and switch to page A to enter a new data. I repeat this loop for around 10+ time. Everything works fine in around 4-5 rounds but after that there show up an error :
StaleElementReferenceException: Message: Cached element 'By.xpath:
//android.widget.TextView[#text='Limit']' do not exists in DOM anymore
The TextView is in the page A. I monitored the robot and saw that the TextView was shown up but the robot did not see it. I tried restart the device but the problem is not solved. I search through the internet and found some who facing the same issue but they use different programming language like Java or Python. I have no idea what I have to do next.
Development Tools :
Appium version: 1.21.0
Robot Framework version: 4.1.2 (Python 3.10.0 on win32)
First I do not use Robot Framework, but the code should be similar according to this https://robocorp.com/docs/languages-and-frameworks/robot-framework/try-except-finally-exception-catching-and-handling.
Second, I'm not sure if this is the best way to get around this. I think there is something you can do with the expected conditions class to get around this in a "cleaner way" but I'm not quite familiar with it enough to show/tell you. Instead what I've done is something like this...
from selenium.common.exceptions import StaleElementReferenceException
while some_limiting_factor:
try:
# logic for submitting page A, assertions for page B
except StaleElementReferenceException:
element = driver.find_element('By.xpath: //android.widget.TextView[#text='Limit']' )
As much as I want to cache elements in appium, it seems that the service itself does NOT want you to, at least not in my experience. Getting a fresh element(s) every time seems to ensure a "slow but steady" test. Hopefully someone can show me the deep appium secrets one day.

Termination caused websites executing no more

I had a perfectly well running asp.net mvc application and I was debugging message sending via SignalRand I decided to stop debugging and went to edit some code. However, there was an error saying something about IIS termination and whether I want to do that because something (I assume - the application) cannot be stopped. (I am really sorry, but I didn't read it at the time). So now I try to relaunch my program and it just won't open. The website is trying to be opened but the loading circle in chrome just kept on spinning forever.
What I tried to do was:
1. restarted VS - didn't help
2. restarted PC - didn't help
3. created a new project, brought all files to it and launched it and it worked!
So then it worked for ~10 minutes or so and then just stopped again (this time no error message or anything). I tried changing a port in the settings of the project. Didn't work. Tried changing back and it launched successfully. For a minute or so... :(
So finally, I tried putting a break point right at the
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
-> {
The breakpoint was hit, it successfully passed the next line
RouteTable.Routes.MapHubs();
and just disappeared at
AreaRegistration.RegisterAllAreas();
Many times I tried and it always disappears at the same location. Going deeper is not an option since this is system method. I suspect something can be problematic with that, but I am not experienced with much configuration of asp.net.
P.S. many times VS was acting strange and even tho I set the breakpoint at the place I marked above, it showed the breakpoint with a message that it won't be hit because the source differs from the current code (But I didn't change a thing since before the very first crash! The only place I modified a few symbols at was at MyHub.cs which is an extended class for a Hub for SignalR)
Lastly, I tried deleting everything from bin folder so it got fully rebuilt, but without any success to revive my application.
What could be a possible problem, maybe someone had anything at least similar to this? Or maybe someone would be kind to help me at choosing better keywords while searching in google because "IIS termination" and "AreaRegistration.RegisterAllAreas(); not working" didn't bring me much :(
This is a known bug: https://github.com/SignalR/SignalR/issues/1335.
We have been unable to successfully reproduce this issue on our servers. We've seen that using a different web server will resolve the issue. If you're able to post a reproduction project to the linked Issue, chances are it will be resolved promptly.
Apparently, the solution I marked isn't the exact thing that helped me. This link was the thing that miraculously helped me and I was able to finally get back to work. However, I found the winning link because of N. Taylor Mullen, so he deserves the full credit :) But letting others know if anyone comes to this question :)

Phonegap application would not work in iOS

I have a very interesting problem. I have a phone-gap application that I am building. It works fine when we run it in the android environment, or even when we open index.html in firefox. But when I try to run this on an iPad simulator in Xcode, it fails.
The application installs fine and displays the start up page correctly. The next thing my application requires is to open a job attached in the email. But as soon as we do that, thats when it starts failing. It does not display the body text. The header and the footer are displayed fine.
To me this does not look like any javascript error because I am able to run this code on other platforms. I think its got to do with some css I am using which might not be compatible with iOS. Also, I have this other problem that my code will not run on any version except phone gap-1.3.0. I am not sure if that has anything to do with this too.
Anyways, I would like to know your thoughts on this.
ok the offending code was found to be the following:
$.mobile.touchOverflowEnabled = true;
I just stumbled across this and I am not sure why its breaking my app. Anybody got any ideas.
After commenting this code out, my app worked fine.

Reason for Error Timeout in CouchDB

I'm using CouchDB for my iOS application.
Following is my Application flow,
When my application is launched for the first time it replicates the remote database using xyz:a...#mmm.iriscouch.com/databasename.
if the replication is successful, everything works as expected, but sometimes the replication is not successful. In that case I'm getting the following error with log
1> OTHER: {'EXIT',{error,timeout,#Ref<0.0.0.506>}}
and it doesn't replicate until i remove the application and freshly reinstall the application on the device/simulator.
is there any callback/delegate to handle this?
Somehow when I try synching with empty DB then I never get Error time out, once I have content in DB I get the error!
Also it is hard to replicate on simulator, whereas on iPad occurrence is 90%.
i have placed the sample project in git hub
https://github.com/interactiveblueprints/CouchDBSyncTest (for couchDB username password, please read readme.txt)
this sample code is just modification of PhotoLocations. An example application (https://github.com/couchbaselabs/iOS-Demo-PhotoLocations), But changed as per my requirement.
I have also attached the error logs in
http://dl.dropbox.com/u/35814355/ErrorLog.rtf
Waiting for reply,
Krishna.
I have tried with your sample and updated the "Couchbase.framework" to the latest one, from https://github.com/couchbaselabs/CouchCocoa and now the problem seems to be solved, may be this was a bug in previous version. now it seems the DB tries to restart by itself. and the replication feels more smoother and faster.

Starting a windows service fails with error 1053

I have a windows service that is failing to start, giving an error "Error 1053: The service did not respond to the start or control request in a timely fashion".
Running the service in my debugger works fine, and if I double click on the the service .exe on the remote machine a console window pops up and continues to run without problem - I can even see log messages showing me that the program is processing everything the way it should be.
The service had been running fine previously, though this is my first time, personally, trying to deploy it with the most recent changes made to the program. I've evaluated those changes and cant figure out how they might cause this problem, particuarly since everything runs fine when not started as a service.
The StartRoutine() method of the service impelmentation is empty, so should be returning in a "timely fashion".
I've checked the event logs on the computer, and it doesn't give any additional information other than it didn't hear back from the service in the 30 second requisite time frame.
Since it works on my machine, and as a double-clicked executable, how would I go about figuring out why it fails as a service?
Oh, and it's .NET 2.0, so it shouldn't be affected by the 1.1 framework bug that exhibited this symptom (http://support.microsoft.com/kb/839174)
The box is a windows server 2003 R2 machine running SP2.
This is a misleading error. It's probably an unhandled exception.
Empty your OnStart() handler then try this in your constructor...
public MainService()
{
InitializeComponent();
try
{
// All your initialization code goes here.
// For instance, my exception was caused by the lack of registry permissions
;
}
catch (Exception ex)
{
EventLog.WriteEntry("Application", ex.ToString(), EventLogEntryType.Error);
}
}
Now check the EventLog on your system for your Application Error.
Could be a number of things and it might help to get a stack trace on the machine exhibiting the problem. There are a number of ways to do this but the point is that you have to see where this is failing in the code.
You can do this with remote debugging, but a simple thing might be to just log to the event logger, or file log if you have that. Literally, putting "WriteLine("At class::function()") throughout portions of the code to see if you've made it there.
This will at least get you looking in the right direction (which ultimately is the code).
Update:
See Microsoft's How to Debug Windows Services article for details in troubleshooting startup problems using WinDbg.
This related question details nice ways to debug services that are written in .NET.
I agree with Scott, the easiest way to find out what's happening is to put some traces in the start-up code (maybe it doesn't even come to your start-up code).
If this doesn't help, you can post your code here so others can take a look.
perhaps lacking some dependence, try this :
- deregister your service
- register again
If fail at register means that lack an module.
If the StartRoutine is empty, you are probably starting it somewhere else.
IIRC you need to fire off a worker thread, and then return from StartRoutine.
One of the problems which may lead to this error is if windows service which needs to be deployed consists of some error i.e it may be simple authorization error or anything as in my case I have referenced some folders and files for logging which were not existing, but when provided the right path of those file and folders it solved my problem.
I ran through every post on this particular subject and none of the responses solved the problem, so I'm adding this response in case this helps someone else. Admittedly this only applies to a new service, not this specific case.
I was writing a File listening service. As a console app, it worked perfectly. When I ran it as a service, I got the same error as above. What I didn't know (and many of the MSDN articles about services conveniently leave out) is that you need to have your class executed from within ServiceBase.Run( YourClassName());. Otherwise, your app executes and immediately terminates and because it terminated, you get the error above even if no error or exception occurred. Here is a link to an article about this. It actually discusses setting up your app for dual use - Console app and service: Create a combo command line / Windows service app
I had that issue and the source of my problem was config file. I edited it in notepad and notepad added one special character which cause service not to run properly because config file was ruined. I saw that special character in notepadd++ and after delete it, service started to run successfully as previous did.
In my case, the correct .NET framework was not installed on the server that I was installing the Windows service on.
One other reason is If you copy the DLL in 'debug' mode to installation folder this issue will come.What you need to do is Run the project in 'Release' mode copy the DLL or directly form Release folder rather than Debug folder,,and copy that DLL in to installation folder,it will work.You can see the reduction in size of DLL ,it will not contain any debug symbols and like that

Resources