1. 28 12月, 2020 6 次提交
    • S
      Fix Incorrect UTC offset during DST transition (case 1288231) · 80ed0174
      Scott Ferguson 提交于
      Corrects an issue where for the hour after the DST transition, the
      local UTC offset was listed.  The UTC offset was the DST offset
      instead of the standard time offset.
      
      The runtime library captures this an ambiguous time.  That is
      the local time that occurs twice - once in DST then once in standard
      time.  If DST is an extra 1:00 a.m. offset and ends at 2:00 a.m., 1:00 a.m.
      to 1:59:59.9999.... occurs twice.  First in DST then again in standard
      time.
      
      The classlibs had this incorrect - they did not consider 1:00 a.m. an
      ambiguous time, and considered 2:00 a.m. ambiguous.  However it should
      be reversed.  1:00 a.m. occurs twice, but 2:00 a.m. only occurs once.
      The instance we would hit 2:00 a.m. DST, we instantaneous switch to
      1:00 a.m. standard.
      
      The classlibs were also not recording enough information to record
      which side of DST a local time was.  When converting a time from UTC,
      or using DateTime.Now an internal flag, IsAmbiguousDaylightSavingTime,
      should be set if the time is an ambiguous local time that is on the
      DST side of the transition.  The classlibs were calling
      TimeZone.IsAmbigousTime which has a wider defintion for ambiguous
      time that the IsAmbiguousDaylightSavingTime should have.  It returns
      true for local times on either side of DST.  So a new method
      IsAmbiguousLocalDstFromUtc was added to check this case.
      
      The classlibs were also not checking the IsAmbiguousLocalDstFromUtc
      flag when getting the UTC offset for a local time.  So a check
      was inserted in two locations to correct for that.
      
      Some tests has to be updated to reflect these new definitions of when
      DST starts and ends and which times are ambiguous.  These also account
      for some test changes required by cherry-picked changes to
      TimeZoneInfo.cs where the corresponding test changes were not
      cherry-picked.  Some of those changes where in PR's that updated to
      the CoreFx TimeZoneInfo class.
      
      All these changes have been verified against the behavior of the
      .Net Framework and they match.
      
      Fix case 1288231:
      Mono: Fix incorrect UTC offset during daylight savings time transitions
      80ed0174
    • M
      Fix time zone issue when jumping into DST (#16430) · 51327a33
      Maxim Lipnin 提交于
      Addresses an issue with jumping into DST for some time zones when the incorrect date-time offset is returned for date-time in UTC (which comes from DateTime.Now). The fix is to just check if the incoming date-time is in UTC.
      
      Also added a set of tests for some time zones to verify jumping into DST in general.
      
      Fixes https://github.com/mono/mono/issues/16395
      51327a33
    • M
    • M
      7f0ea3df
    • M
      Fix time zone transition out of DST (#15401) · bd8909c1
      Maxim Lipnin 提交于
      When a datetime appears in range of [end_of_DST_period - Daylight_delta; end_of_DST_period] it's not DST and should return base offset.
      
      Fixes #9664.
      bd8909c1
    • M
      Port 13553 "Fix transition offset logic" to master · dc7a88eb
      Maxim Lipnin 提交于
      dc7a88eb
  2. 16 12月, 2020 1 次提交
    • L
      Fix race condition in WaitAnyWithSecondMutexAbandoned test. · 858863a9
      lateralusX 提交于
      There is a small race condition during the completion of a native thread join
      call. During that period of time the tid is no longer included on the
      internal list tracking joinable threads so a thread that will join on the
      tid while another thread (like the finalizer thread) is waiting on native
      join to complete for the same tid, will cause the managed Thread.Join call
      to complete before the native join call has completed. This race could cause
      issues on some OS:es that clear's up some thread resources, like abandoned
      mutexes when the thread has exited. This race is hit by WaitAnyWithSecondMutexAbandoned
      since the call to Thread.Join will return before the thread owning the mutex
      has terminated meaning that it doesn't get ownership of the abandoned mutex
      as assumed by the test.
      
      Fix makes sure Thread.Join won't complete until native thread join is complete.
      Increasing the join timeouts in the test also eliminates a timeout error making it
      harder to hit the problematic code path, primarily during reproduction
      in the debugger.
      
      Fix also switch to coop mutex for joinable threads.
      858863a9
  3. 30 10月, 2020 1 次提交
  4. 29 10月, 2020 1 次提交
  5. 28 10月, 2020 2 次提交
  6. 27 10月, 2020 1 次提交
  7. 26 10月, 2020 1 次提交
  8. 09 10月, 2020 3 次提交
  9. 07 10月, 2020 1 次提交
    • L
      Wait on runtime threads to park on joinable thread list during shutdown. · dfb06020
      lateralusX 提交于
      https://github.com/mono/mono/pull/5599 fixed a race condition during shutdown
      when runtime threads have come parts of their way through detach, but still
      depend on runtime resources, like GC memory. The fix added runtime threads
      to the joinable thread list just before they vanished from mono_thread_manage
      radar making sure shutdown waited upon the thread before cleaning up.
      
      The above fix slightly changed the behavior of the finalizer thread since it
      waits on joinable threads and will now potential block on threads still
      executing code (that involves runtime resources). There’s was an assumption
      around the threads on the joinable thread list that they should be very close
      to complete when added, so join calls coming from the finalizer thread should
      almost never block and if it does, the code that remains to execute should not
      involve runtime operations risking deadlock situations. Adding the thread to
      the list earlier than previously done expose the shutdown to some potential
      theoretical problems.
      
      To mitigate the risk and still solve the race condition this commit adds a
      mechanism to keep track of active runtime threads until they park on joinable
      thread list. The pending counter will be waited upon by the shutdown
      thread, just before it does its regular wait on all joinable threads
      (after finalizer thread has stopped) to make sure all runtime threads have
      been added to the joinable thread list before waiting upon them. Threads are
      added to the joinable thread as late as possible, exactly how it’s been done
      in the past by sgen_client_thread_detach_with_lock. Shutdown thread will wait
      on runtime threads to appear on the list for a short time and if timeout (pending
      runtime thread count not reaching 0 before timeout), it will just print a warning
      and continue shutdown.
      
      Getting into a wait state during shutdown due to runtime threads not yet added to
      joinable threads list should be very rare (hitting previous race condition that was rare),
      triggering the timeout should be even more rare, and if that ever happens, we are exposed
      to shutdown race condition as we have had in the past, but now we at least get a warning in
      the log making it simpler to analyze further.
      
      This commit also fixes a problem with the debugger thread hitting the same race condition as above.
      The shutdown thread stopping the debugger thread didn't completely wait for it to stop using runtime
      resources before continue shutdown sequence. This triggers the same race condition as when shutting
      down regular runtime threads. This commit makes sure stop_debugger_thread waits on the debugger thread
      handle to become signaled (happens at the very end of thread lifetime) before continuing the shutdown
      logic.
      dfb06020
  10. 22 9月, 2020 1 次提交
  11. 18 9月, 2020 1 次提交
  12. 16 9月, 2020 2 次提交
  13. 15 9月, 2020 1 次提交
  14. 01 9月, 2020 1 次提交
    • H
      Merge pull request #1335 from... · dcee0dd7
      Harald Kjær Nielsen 提交于
      Merge pull request #1335 from Unity-Technologies/unity-master-method-to-skip-assembly-version-validation
      
      Add option to ignore versions when loading strong named assemblies
      dcee0dd7
  15. 28 8月, 2020 1 次提交
  16. 26 8月, 2020 1 次提交
  17. 21 8月, 2020 2 次提交
  18. 11 8月, 2020 3 次提交
  19. 10 8月, 2020 1 次提交
  20. 07 8月, 2020 1 次提交
  21. 06 8月, 2020 2 次提交
  22. 04 8月, 2020 3 次提交
  23. 31 7月, 2020 2 次提交
  24. 29 7月, 2020 1 次提交