Caution: Windows 10 Fall Creators Update

Post Reply
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Caution: Windows 10 Fall Creators Update

Post 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.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Re: Caution: Windows 10 Fall Creators Update

Post 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
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org

********************************************************************
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Caution: Windows 10 Fall Creators Update

Post by Antonio Linares »

Otto,

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

https://github.com/harbour/core/blob/ma ... rtl/file.c
https://github.com/harbour/core/blob/ma ... l/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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Rick Lipkin
Posts: 2397
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: Caution: Windows 10 Fall Creators Update

Post 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
User avatar
Giovany Vecchi
Posts: 129
Joined: Mon Jun 05, 2006 9:39 pm
Location: Brasil

Re: Caution: Windows 10 Fall Creators Update

Post 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

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 
 
User avatar
TimStone
Posts: 2536
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA
Contact:

Re: Caution: Windows 10 Fall Creators Update

Post 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.
Tim Stone
http://www.MasterLinkSoftware.com
timstone@masterlinksoftware.com
Using: FWH 19.06 with Harbour 3.2.0 / Microsoft Visual Studio Community 2019
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Re: Caution: Windows 10 Fall Creators Update

Post 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

function xfile()
   Sysrefresh()
Return File()
FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
User avatar
Rick Lipkin
Posts: 2397
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: Caution: Windows 10 Fall Creators Update

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Caution: Windows 10 Fall Creators Update

Post 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

function xfile()
   Sysrefresh()
Return File()
yes, very good idea
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Re: Caution: Windows 10 Fall Creators Update

Post 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
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org

********************************************************************
Post Reply