sfpx

White screen

12 posts in this topic

I have a table that gets written a few hundreds records on an initial sync and for some reasons the screen goes completely white on the device while it's writing on this table.

Any way to avoid this ?

Share this post


Link to post
Share on other sites

I've never seen this happen, so it's hard for me to come up with any suggestions for a solution.

Share this post


Link to post
Share on other sites

It happens with 2 particular tables out of 20.

Those 2 tables have only a few fields to sync (less than 10) but they have many occurrences and some of them have access to other occurrences of themselves.I know from experience that it slows down the writing process.

So maybe it's related to that.

The sync works fine but the white screen makes it look like the app is frozen.

Maybe I could add a refresh somewhere in the Mirrorsync code ?

 

 

 

 

Share this post


Link to post
Share on other sites

Note that I modified the mirrorsync layout so everything is basically hidden (hide condition = "1" for all objects) and only a label is actually displayed.

Maybe it's related to that.

I will retry tomorrow with the default mirrorsync layout and report the result here.

 

Share this post


Link to post
Share on other sites

I think that happens with small tables that are long to write (because of the database structure more than the actual size of data)

For example, my large table seems to be written in batches of 25 records while the tables that give me the white screen seem to be written in batches of 250 records. Not too sure about this...this was deduced by looking at the config utility while syncing.

 

 

Share this post


Link to post
Share on other sites

That has to do with container fields. We write in batches of 25 for any table that has one or more container fields; 250 for tables that don't.

Share this post


Link to post
Share on other sites

That's funny because I was just thinking about that.

I may add an empty container to sync for those tables and see if that fixes my problem.

Thanks for the quick reply Jesse

 

Share this post


Link to post
Share on other sites

I can replicate the white screen behavior by running this script (any table will do)

Script:

New Window
Refresh Window
Freeze Window
Go to Layout Test
loop 
Set Variable $1=$i+1
New Record
Exit loop if $i=2000
End loop
Close Window

I tested this script on an new database with only this table

On Filemaker Pro on Mac you are getting a black screen for a second or so.

On Filemaker Go you get a white screen for the duration of the loop.

If you add a 

Pause Script 0.1 second

Just before "Freeze Window" it fixes the problem.

I also noticed that the white screen on my syncs always happen after the first batch has been written.

If you have any idea on what I could try.

I tried to add a pause script in the Mirror Sync Layout onLayoutEnter but it didn't eliminate the white screen.

I presume it has to be added inside the mirrorsync script.

 

 

Edited by sfpx

Share this post


Link to post
Share on other sites

I was able to eliminate the white screen by modifying the mirrorsync script

In the #Update/insert records in client from server section of the script

Solution removed as it was not the correct one.

Edited by sfpx

Share this post


Link to post
Share on other sites

Turns out the solution is even simpler

In the Mirrorsync script

#Update/insert records in client from server

Set Variable [ $parseError; .....] 
Set Field [ MirrorSync::status; ..... ] 

If [ not $$isServer ]
Pause/Resume Script [ Duration (seconds): 0 ] 
End If 

If I change the duration of this pause from 0 to 0.1 it seems to fix my white screen issue.

This remains to be tested more deeply but so far so good.

Edited by sfpx

Share this post


Link to post
Share on other sites

We were having very frequent crashes with FileMaker Go clients. The solution turned out to be disabling one of the pause script steps in MirrorSync. Amazingly, that solved the problem. Ever since then, I've been very hesitant to add or remove any pause script steps, for fear that the problem could come back:

https://community.filemaker.com/thread/134315?start=15&tstart=0

It looks like the part you're recommending the change in is different than the other spot where changing it caused / fixed the crash. I will go ahead and make this change in the next MirrorSync release.

Thanks for your help!

Share this post


Link to post
Share on other sites
1 minute ago, Jesse Barnum said:

We were having very frequent crashes with FileMaker Go clients. The solution turned out to be disabling one of the pause script steps in MirrorSync. Amazingly, that solved the problem. Ever since then, I've been very hesitant to add or remove any pause script steps, for fear that the problem could come back:

https://community.filemaker.com/thread/134315?start=15&tstart=0

But was it this particular pause that caused the crashes ?

Also if a pause is unsafe I may try other things (freeze window?...go to layout "MirrorSync") but I would prefer that simple pause duration fix. I don't mind having to add it manually. It only takes a few seconds.

 

Also how frequent were the crashes. Were there easily reproducible ? If so, how ?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now