Page 1 of 1

Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 3:35 am
by Antonio Linares
Reported by Alaska:

// Caution: Windows 10 Fall Creators Update

Our final tests with Windows 10 Version 1709 (Fall Creators Update) revealed timing issues with the
local file system, which may lead to changed application behavior as well as application runtime
errors. In fact, all coding patterns which first delete a file on the local storage and then assume
the file is gone may fail. This is valid for all programming languages used as the behaviour is
introduced on the Windows API/file-system level. In other words, an FErase( "test.dbf" ) may lead to
File( "test.dbf" ) == .T. in some but not all cases.

With that finding in mind we can not recommend updating production systems right now to Windows 10
Fall Creators Update.

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 8:39 am
by Otto
Dear Antonio,

I noticed such behaviour with SMB2 as well.
I am not sure but I think Directory() gives better result than file.
Is this technically possible or are the underlying function the same?

Thanks in advance
Otto

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 10:16 am
by Antonio Linares
Otto,

The underlying function is the same: hb_fsFindFirst() (also hb_fsFindNext() on Directory())

https://github.com/harbour/core/blob/master/src/rtl/file.c
https://github.com/harbour/core/blob/master/src/rtl/direct.c

but as Directory() has to work with more than one file, maybe that makes Windows process pending tasks

This is just a guess

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 3:05 pm
by Rick Lipkin
Antonio, Otto

Unfortunately .. the Fall Creator has been rolled out to almost everyone in the US .. and as you know, there is no way you can really stop the updates in Windows 10 ..

I see many customers walk into the repair shop with the 'spinning wheel of death' 9 out of 10 times due to the Fall Creator update fails for some reason. Also with the Intel and AMD 'meltdown' and 'specter' vulnerabilities .. we have seen 3 ( count um ) 3 January Windows 10 Cumulative security roll ups.... where one roll-up fixes that last roll-up.

In my opinion .. Microsoft is it's own worst 'virus' and needs to be slapped with a class action law suit' to stop updates without your consent ... no one should be allowed to update your computer without your permission.

As far as the confirmation of deletions ... I generally have one folder in my app for temp file creation and I always wipe all the files in that folder every time anyone logs into my systems .. just in case of a run-time error leaves clutter in the TempFile folder or I forget to ( rarely ) clean up after myself.

Rick Lipkin

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 5:11 pm
by Giovany Vecchi
I also had problems in this case when I create temporary tables locally.
To solve the problem I had to invent a routine.

Code: Select all  Expand view

FUNCTION TAds_TableErase(f_nConnection,f_cTableName)
  Local oDs_Qry, lExecute := .F., iFor := 0

  Default f_nConnection := tAds_GetConnectionDefault()

  If HB_ISNIL(st_lExeTableErase)
    st_lExeTableErase := .F.
  EndIf

  For iFor := 1 to 50
    if st_lExeTableErase
      hb_idleSleep(.02)
    Else
      Exit
    EndIf
  Next

  st_lExeTableErase := .T.
 
  If !TAds_TableExist(f_nConnection,f_cTableName)
    TADS_LOGFILE("tAdsError.log",{"TAds_TableErase - TAds_TableExist() / Incorrect erase / Table not exist: "+;
                             f_cTableName +" Con: "+Alltrim(Str(f_nConnection)), ProcName(1)+" ("+AllTrim(Str(ProcLine(1)))+")"})
    st_lExeTableErase := .F.
    Return .T.
  EndIf

  If f_nConnection == 121 // Temporary Table local // error in Windows 10
   
    For iFor := 1 to 50
      AdsConnection(tAds_GetConnectionHandle(121))
      lExecute := AdsDDRemoveTable(f_cTableName,.T.)
      If lExecute
        Exit
      Else
        TADS_LOGFILE("tAdsError.log",{"iFor = "+Alltrim(Str(iFor))+" Con: "+AllTrim(Str(121)),;
                                 "TAds_TableErase - AdsDDRemoveTable / Not Remove table: "+f_cTableName, ProcName(1)+" ("+AllTrim(Str(ProcLine(1)))+")"})
        hb_idleSleep(.1)
      EndIf
    Next
    AdsConnection(tAds_GetConnectionDefault())
  Else
   
    oDs_Qry := tAds():DsNew(2,f_nConnection)
    oDs_Qry:cQrySql := "DROP TABLE "+f_cTableName+" FROM DATABASE ;"
    lExecute := oDs_Qry:DsExecute()
    oDs_Qry:End()

  EndIf
 
  If f_nConnection == 121 // Temporary Table local
    For iFor := 1 to 80
      fErase(tAds_GetPathTemp()+f_cTableName+".adt")
      fErase(tAds_GetPathTemp()+".adi")
      fErase(tAds_GetPathTemp()+f_cTableName+".adm")
      If !File(tAds_GetPathTemp()+f_cTableName+".adt")
        Exit
      Else
        hb_idleSleep(.1)
      EndIf
    Next
    If File(tAds_GetPathTemp()+f_cTableName+".adt")
      TADS_LOGFILE("tAdsError.log",{"TAds_TableErase() - Not fErase "+f_cTableName, ProcName(1)+" ("+AllTrim(Str(ProcLine(1)))+")"})
    EndIf
  EndIf
 
RETURN lExecute
 

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 5:23 pm
by TimStone
When Satya Nadella took over as CEO, he established the "freedom to create" philosophy and shared it with all Microsoft staff ( in a memo later made public ). It places an emphasis on ideas and creative exploration rather than the stability of products, and their use in the "real world."

I expressed my concerns at the time ( directly to him by email which he did read, and to which he responded ), followed by specific reports to his assistant. In some cases, I worked with the administrative team for months following up on bugs in their own hardware ( Surface ), and specific software issues. In most cases, the programming engineers will do little or nothing to fix the mistakes they have made.

Microsoft support has fallen apart. It is mostly scripted responses to input that often do not at all relate to the actual problems reported. My clients are growing very frustrated with these updates. Every time they happen overnight, the networking doesn't work. They get no real notifications. Instead they are learning to down all computers, and then bring them back up to complete the updates, and return ( hopefully ) to operation.

I share this because we are all experiencing issues. I would like to encourage you to send an email with your concerns directly to Satya Nadella. Maybe enough input will get him to return some focus to quality control on a product most of the world's computers depend on to operate essential services and businesses.

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 6:34 pm
by Enrico Maria Giordano
:-(

Anyway, I didn't notice that problem so far...

EMG

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 7:12 pm
by James Bott
Maybe doing a Sysrefresh() before the File() would be a workaround.

If that works, you could create your own file checking routine:

Code: Select all  Expand view
function xfile()
   Sysrefresh()
Return File()

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Mon Feb 05, 2018 9:00 pm
by Rick Lipkin
To All

Just my 2 cents worth ( again ) .... sounds like a latency hard disk write problem ... whether it be on a network or a local drive.... unfortunately not everyone can afford a solid state drive .... there is basically zero latency with disk writes and I have a SSD and not seen the problem on my machine.

Rick Lipkin

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Tue Feb 06, 2018 6:59 am
by Antonio Linares
James,

James Bott wrote:Maybe doing a Sysrefresh() before the File() would be a workaround.

If that works, you could create your own file checking routine:

Code: Select all  Expand view
function xfile()
   Sysrefresh()
Return File()


yes, very good idea

Re: Caution: Windows 10 Fall Creators Update

PostPosted: Thu Feb 22, 2018 4:59 pm
by Otto
Hello,
I found this post:

https://support.microsoft.com/en-us/hel ... rsion-1709

Maybe missing SMB is the problem.

Best regards,
Otto