A problem with Jowr's librefprop.so

platform:
Ubuntu server 64bit 14.04
gcc 4.8.2
gfortran 4.8.2
refprop 9.0
librefprop.so v0.2
python 2.7.6

compiled with a lot of warnings but test successfully with the pyrp.py in librefprop.so v0.2. And the librefprop.so and fluids/mixtures folder were located in /opt/refprop/ by defaut.
So I have to modify the refprop.py at line 97:
  97 _fpath = u'/opt/refprop/'

and run the test by:
python -c "import rptest;rptest.settest('refprop')"

and the output is
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "rptest.py", line 22, in settest
    _maintest(rp)
  File "rptest.py", line 32, in _maintest
    if rp.test(): #if True; rptest =>>for testing purpose
  File "refprop.py", line 921, in test
    prop = setup(u'def', u'air')
  File "refprop.py", line 1688, in setup
    return _setmix(mix, hrf, hfmix)
  File "refprop.py", line 1957, in _setmix
    _rpsetmix_(byref(_hmxnme), byref(_hfmix), byref(_hrf), byref(_nc),
NameError: global name '_rpsetmix_' is not defined

I used ipython load refprop.py and found that there is no rpsetmix in the dict of refprop. I do not know what happened. I used ipython debugger to see what was defined in the process:
ipdb> _
Display all 210 possibilities? (y or n)
_A                   _acf                 _dhdt_p              _hfld                _nc                  _seterrordebug       _tmax
_Ar                  _b                   _dip                 _hfm                 _nc_rec              _setinputerrorcheck  _tmin
_D                   _ba                  _dnadn               _hfmix               _nmxpar              _setktv_rec          _tnbpt
_D1                  _beta                _dpdD                _hjt                 _nroot               _setmix              _ts
_D2                  _betas               _dpdt                _hmix                _outputierrcheck     _setmod              _ttrp
_D3                  _bs                  _e                   _hmodij              _p                   _setmod_pre_rec      _u
_Dcrit               _c                   _eE                  _hmxnme              _p0                  _setmod_rec          _v
_Dlbub               _ca                  _er                  _hmxrul              _p1                  _setref_rec          _vE
_Dliq                _checksetupmodel     _eta                 _hn80                _p2                  _setup0              _var1
_Dmax                _cp                  _f                   _hname               _p3                  _setup_rec           _var2
_Dmin                _cpr                 _fij                 _hpth                _pbub                _setupprop           _w
_Ds                  _cs                  _fixicomp            _hr                  _pcrit               _setwarning          _wliq
_Dvap                _csat                _fldext              _hrf                 _pdew                _sigma               _wmix
_Dvdew               _cv                  _fluidextention      _htype               _pint                _spare1              _wmm
_Fpv                 _cv2p                _fpath               _icomp               _pmax                _spare2              _ws
_G                   _cvr                 _gE                  _ierr                _pr                  _spare3              _wvap
_Gr                  _d                   _gerg04              _inputerrorcheck     _preos_rec           _spare4              _x
_Rgas                _d2pdD2              _gerg04_pre_rec      _ixflag              _prop                _spht                _x0
_Setuprecord         _dDdp                _gerg04_rec          _jcomp               _ps                  _sr                  _xbub
_Z                   _dDdt                _h                   _k1                  _purefld_rec         _t                   _xdew
__IPYTHON__          _dadn                _h0                  _k2                  _q                   _t0                  _xisenk
__IPYTHON__active    _dbt                 _hE                  _k3                  _qkg                 _t1                  _xkappa
__debug__            _dct                 _hbinp               _kguess              _routine             _t2                  _xkg
__doc__              _dct2                _hcas                _kph                 _rp                  _t3                  _xkkt
__file__             _de                  _hcite               _kq                  _s                   _tbub                _xkt
__import__           _dhdD_p              _hcode               _kr                  _s0                  _tcrit               _xliq
__name__             _dhdD_t              _hcomp               _ksat                _sE                  _tcx                 _xlkg
__package__          _dhdp_D              _herr                _loadfile            _set                 _tdew                _xvap
_aE                  _dhdp_t              _hfij                _maxcomps            _setaga_rec          _test                _xvkg
_abfl2               _dhdt_D              _hfile               _name                _seterror            _thrott              _zcrit

There is a _setmix but no global rpsetmix
I am a windows user, not familiar with debugging in command line using ipdb. I think this might be helpful to find out what happened:
ipdb> w
  <ipython-input-9-c9e031ecf5c0>(1)<module>()
----> 1 import rptest;rptest.settest('refprop')

  /home/vagrant/refprop/python-refprop/python2.7/rptest.py(22)settest()
     20     if test == u'refprop':
     21         import refprop as rp
---> 22         _maintest(rp)
     23     elif test == u'multiRP':
     24         import multiRP as rp

  /home/vagrant/refprop/python-refprop/python2.7/rptest.py(32)_maintest()
     30     rp.SetErrorDebug.off() #turn on =>> for testing purpose
     31
---> 32     if rp.test(): #if True; rptest =>>for testing purpose
     33         print u'refprop installed correctely'
     34

  /home/vagrant/refprop/python-refprop/python2.7/refprop.py(921)test()
    919
    920     #test no. 1
--> 921     prop = setup(u'def', u'air')
    922     prop = wmol(prop[u'x'])
    923     testresult += u'check molar mass of air'

> /home/vagrant/refprop/python-refprop/python2.7/refprop.py(1688)setup()
   1686         for item in listhfld:
   1687             mix = unicode(item)
-> 1688         return _setmix(mix, hrf, hfmix)
   1689     else:
   1690         if u'hmxnme' in _setupprop:

  /home/vagrant/refprop/python-refprop/python2.7/refprop.py(1957)_setmix()
   1955     _hrf.value = hrf.upper().encode(u'ascii')
   1956
-> 1957     _rpsetmix_(byref(_hmxnme), byref(_hfmix), byref(_hrf), byref(_nc),
   1958                byref(_hfld), _x, byref(_ierr), byref(_herr), c_long(255),
   1959                c_long(255), c_long(3), c_long(10000), c_long(255))

Hello,
You may want to test out my branch : https://github.com/AndySchroder/python-refprop
My branch and BenThelen's are diverged a bit I believe. I'm not sure how much. Everything is working for what I have been doing, so there isn't much of a need for me to see what improvements BenThelen has made.
I am using ubuntu 13.04 and 14.04.1, and I do not have any issues running the command
python -c "import rptest;rptest.settest('refprop')"
I don't think I have made any modifications to python-refprop from what is in my repository listed above.
I am using the python2x version. I have no idea if the python3x version works because I've never needed to try it.
Curious to know if my branch works for you or not.

I realized that I should run rp2so to setup the BenThelen/python-refprop module rather than compile it myself.
But I get the following test error, I am not sure if this is a bug? Should I report it in a new issue?:
In [6]: rptest.settest('refprop')
---------------------------------------------------------------------------
RefpropnormalizeError                     Traceback (most recent call last)
<ipython-input-6-f1d28732ebde> in <module>()
----> 1 rptest.settest('refprop')

/home/vagrant/refprop/python-refprop/python2.7/rptest.pyc in settest(test)
     20     if test == u'refprop':
     21         import refprop as rp
---> 22         _maintest(rp)
     23     elif test == u'multiRP':
     24         import multiRP as rp

/home/vagrant/refprop/python-refprop/python2.7/rptest.pyc in _maintest(rp)
     30     rp.SetErrorDebug.off() #turn on =>> for testing purpose
     31
---> 32     if rp.test(): #if True; rptest =>>for testing purpose
     33         print u'refprop installed correctely'
     34

/home/vagrant/refprop/python-refprop/python2.7/refprop.pyc in test(criteria)
   1101     prop = flsh(u'td', 150, 200 / wmix, x)
   1102     Dliq = prop[u'Dliq']
-> 1103     wmix = wmol(prop[u'xliq'])[u'wmix']
   1104     testresult += u'check Liquid Density of Methane / Ethane / Propane / Butane'
   1105     truefalse = printresults(481.276038325628, Dliq * wmix, truefalse)

/home/vagrant/refprop/python-refprop/python2.7/refprop.pyc in wmol(x)
   4600     output (as function value):
   4601         wmix--molar mass [g/mol], a.k.a. "molecular weight'''
-> 4602     _inputerrorcheck(locals())
   4603     for each in xrange(len(x)): _x[each] = x[each]
   4604

/home/vagrant/refprop/python-refprop/python2.7/refprop.pyc in _inputerrorcheck(deflocals)
    547                 if sum(value) != 1:
    548                     raise RefpropnormalizeError(u'sum input value '
--> 549                                                  + key + u'is unequal to 1')
    550         elif key in checklist:
    551             if not type(value) == list:

RefpropnormalizeError: u'sum input value xis unequal to 1'
> /home/vagrant/refprop/python-refprop/python2.7/refprop.py(549)_inputerrorcheck()
    548                     raise RefpropnormalizeError(u'sum input value '
--> 549                                                  + key + u'is unequal to 1')
    550         elif key in checklist:

ipdb> sum(value)
0.9999999999999999
ipdb>

I am still using
Ubuntu 14.04 TLS 64bit
refprop 9.0

And during the installation of, the following warning was produced:
......
processing /usr/local/lib/refprop/mixtures/R504.MIX
processing /usr/local/lib/refprop/mixtures/R508A.MIX
processing /usr/local/lib/refprop/mixtures/R508B.MIX
processing /usr/local/lib/refprop/mixtures/R509A.MIX
processing /usr/local/lib/refprop/mixtures/R510A.MIX
--- Applying common file fix ---
Can't rename /usr/local/lib/refprop/FOR/COMMONS.f /usr/local/lib/refprop/FOR/COMMONS.include: No such file or directory
Can't rename /usr/local/lib/refprop/FOR/COMTRN.f /usr/local/lib/refprop/FOR/COMTRN.include: No such file or directory
--- Creating shared object file ---
/usr/local/lib/refprop/FOR/UTILITY.f:1213.72:

          if (ABS(iprnterr).ge.3)  pause
                                                                        1
Warning: Deleted feature: PAUSE statement at (1)
--- Installing object file ---

Note: If you want to display ported commands, type:
nm /usr/local/lib/librefprop.so

@AndySchroder Thanks a lot!
I just tested your module, it works for refprop, but multiRP failed
vagrant@vagrant-ubuntu-trusty-64:~/refprop/new/python-refprop/python2x$ python -c "import rptest;rptest.settest('refprop');rptest.settest('multiRP')">a.txt
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "rptest.py", line 22, in settest
    _maintest(rp)
  File "rptest.py", line 192, in _maintest
    print rp.sate(45000, x), u'\n'
  File "multiRP.py", line 681, in sate
    return _rpfunc_handler(prop, mRP, _rpfunc)
  File "multiRP.py", line 287, in _rpfunc_handler
    return _rpfunc()
  File "multiRP.py", line 680, in _rpfunc
    return refprop.sate(e, x, kph)
  File "refprop.py", line 3550, in sate
    herr = _herr.value, defname = defname)
  File "refprop.py", line 619, in _prop
    _outputierrcheck(prop[u'ierr'], prop[u'herr'], prop[u'defname'], prop)
  File "refprop.py", line 733, in _outputierrcheck
    raise RefpropdllError(herr.decode(u'utf-8'))
refprop.RefpropdllError: u'[SATE error 162] iteration for saturation state did not converge for both roots; e = 45000. J/mol'

Actually, I don't normally use multiRP, but I just ran the command you have listed above and I am getting the same error. That looks like a refprop bug/error and not a configuration error on your end. I have cases where refprop can not get a solution, but I'm not sure why the test program has a case selected that refprop doesn't work with. In cases where refprop has problems like this converging, it seems to me like it is usually sensitive to the independent variables that you choose. A workaround I usually use is to pre-populate some tables using other independent variable combinations (making the problem independent variable now a dependent variable while pre-populating) and then interpolate instead.

@AndySchroder Thanks for your reply. I just copied your version of python_refprop to my windows 8.1 and run it under ipython with python 2.7.6, run the command below and compare the output with linux version
ipython -c "import rptest;rptest.settest('refprop');rptest.settest('multiRP')">b.txt

b.txt is generated successfully. I copied b.txt to linux
dos2unix b.txt
diff a.txt b.txt > c.txt
vim -O a.txt b.txt

a lot of difference, I noticed the preos part like this:
  573 {u'hfmix': u'HMX.BNC', u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE', u'METHANE']|467 normalize
  574                                                                               |468 {u'hfld': [u'WATER', u'AMMONIA'], u'nc': 2, u'hfmix': u'HMX.BNC', u'purefld': [
  575 resetup_test_prop, purefld                                                    |    1, u'WATER'], 'x': [Decimal('0.3333333333333333333333333333'), Decimal('0.33333
  576 {u'hfmix': u'HMX.BNC', u'hfld': [u'WATER', u'AMMONIA'], u'hrf': u'DEF', u'nc':|<PHONE_NUMBER>3333333333333'), Decimal('0.1666666666666666666666666667'), Decimal('
  577                                                                               |    0.1666666666666666666666666667')], u'hrf': u'DEF'}
  578 resetup                                                                       |469
  579 {u'hfmix': u'HMX.BNC', u'hfld': [u'WATER', u'AMMONIA'], u'hrf': u'DEF', u'nc':|470 setup_details
  580                                                                               |471 {u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE', u'METHANE'], u'nc': 4, u'setref':
  581 normalize                                                                     |    {u'p0': 100, u'ixflag': 1, u'h0': 0, u's0': 0, u't0': 273, u'hrf': [u'OTH', u'?
  582 {u'hfld': [u'WATER', u'AMMONIA'], u'nc': 2, u'hfmix': u'HMX.BNC', u'purefld': |    ??']}, u'hfmix': u'HMX.BNC', u'setmod': {u'hcomp': [u'TC2', u'TC1', u'TC2', u'T
  583                                                                               |    C2'], u'htype': u'TCX', u'hmix': u'ECS'}, u'hrf': u'DEF'}
  584 setup_details                                                                 |472
  585 {u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE', u'METHANE'], u'nc': 4, u'setref':|473 gerg04 = 1
  586                                                                               |474 {u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'DEF', u'gerg04': {'ixfl
  587 gerg04 = 1                                                                    |    ag': 1}, u'nc': 3, u'hfmix': u'HMX.BNC'}
  588 {u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'DEF', u'gerg04': {'ixf|475
  589                                                                               |476 gerg04 = 0
  590 gerg04 = 0                                                                    |477 {u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'DEF', u'hfmix': u'HMX.B
  591 {u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'DEF', u'hfmix': u'HMX.|    NC', u'nc': 3}
  592                                                                               |478
  593 preos = 2                                                                     |479 preos = 2
  594 {u'hfmix': u'HMX.BNC', u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'|480 {u'hfmix': u'HMX.BNC', u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'D
  595                                                                               |    EF', u'preos': 2, u'nc': 3}
  596 preos = -1                                                                    |481
  597 1                                                                             |482 preos = -1
  598                                                                               |483<PHONE_NUMBER>
  599 preos = 0                                                                     |484
  600 None                                                                          |485 preos = 0
  601                                                                               |486 None
  602 preos = -1                                                                    |487
  603 0                                                                             |488 preos = -1
  604                                                                               |489<PHONE_NUMBER>
  605 setaga                                                                        |490
  606 {u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'DEF', u'nc': 3, u'seta|491 setaga
  607                                                                               |492 {u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'DEF', u'nc': 3, u'setag
  608 unsetaga                                                                      |    a': True, u'hfmix': u'HMX.BNC'}
  609 {u'hfmix': u'HMX.BNC', u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'|493
  610                                                                               |494 unsetaga
  611 setup_setting                                                                 |495 {u'hfmix': u'HMX.BNC', u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'D
  612 {u'hfmix': u'HMX.BNC', u'hfld': [u'BUTANE', u'ETHANE', u'PROPANE'], u'hrf': u'|    EF', u'nc': 3}
  613                                                                               |496
a.txt                                                             593,1          68% b.txt                                                            479,1          48%
/preos

I think maybe there are some compiler differences between Intel's Compiler and GCC.

Hello,
I'm not exactly sure why, but the e-mail I received includes your differences, but then the text above on this web page seems to be slightly different and not include the DIFF. Did you edit it? Anyway, I have no idea what the "preos" means. Maybe there is a compiler difference, I'm not sure.
Honestly, I don't know much about how the python refprop works, nor refprop in general. It seemed like luck that I got this working for what I needed. Although the efforts of BenThelen and others who have gotten this together and working for linux have been spectacular, I'm honestly considering changing over to "cool prop" (http://coolprop.sourceforge.net/). Have you looked into it? When I originally got started with everything, cool prop lacked a few features that I needed that refprop had. Refprop is still "working" for me, so I haven't had the push to switch, but I'm preparing for it. Coolprop is free, open source, and has a very active developement team. They seem focused on making these kinds of interfaces standard and integrated into their tool, for many programing languages. With refprop, the people at NIST charge for it, they are working on an archaeic fortran codebase, and they have no concern to make these kinds of useful interfaces available on a variety of platforms and languages. It's up to great memebers of the volunteer community like BenThelen to make it happen, but here is a limit to what they can do efficiently since everyone is at the mercy of NIST. Because refprop is not free, there is a limit to how many people can even test out interfaces like this one and help to make it better.
Coolprop does actually also have an optional interface to use and compile refprop from within it. I haven't personally tried it, but I imagine it works because they have a lot of benchmark comparisons with it. They also use the refprop interface in coolprop to do some things (like mixtures) that cool prop does not yet support (last time I checked, but they could have made all the same functionality work by now). I'm curious to hear your experience with cool prop and if it is any better than refprop. I've briefly tried it, but have not done any in depth analysis or performance or accuracy benchmarks.

@AndySchroder ,thanks a lot
I am just familiar with refprop rather than coolprop, I'll look into coolprop in the future. I do not use it to do cycle analysis, I am studying hydrocarbon fuel's thermodynamic behavior in supercritical conditions. There is few data in this field. I thought refprop is made by NIST and maybe it is better. Though the programming is so bad in its source code. I used NIST 4, the supertrapp, a legacy code. The programming style is the same as refprop. And the cross-programming is more difficult.
p.s. I just found out the best way to do DIFF is vim -d a.txt b.txt

No problem. Sorry I couldn't have been more help, but my above comment pretty much explains my perspective.
Also, I think the title of this original issue may be a complete mistake? I don't think BenThelen's work has anything to do with jowr's work, does it?
I am curious what you are doing with supercritical fuel studies, if you are interested in sharing. If so, but you don't want to continue discussion about your work on this website, you can contact me directly using my contact infromation that can be found at: http://andyschroder.com/contact/ .

Also, I'm not sure if this issue should be closed or not. You may want to get BenThelen's oppinion, but I'm guessing it is dependent upon fixing the REFPROP source code, which is not really included in this project.

@AndySchroder Yes, I think you are right, the title is a complete mistake. And it should be closed. This issue is caused by my misunderstanding of the readme of python_refprop module. I thought I need to compile librefprop.so myself. So I used Jowr's work, but I used BenThelen's test. And it failed.
When I looked into the rp2so file, I found that it is used to compile librefprop.so. I do not need to use Jowr's work anymore...
Then the problem became a version issue. I should use ver 0.2 with refprop 9.0. But I got a RefpropnormalizeError. This problem may be caused by machine error or compiler incompatibility.
Then I used your version of python_refprop. It works fine with refprop 9.0, but multiRP went wrong in linux.
I think this issue should be closed.


KAFKA-8026: Fix flaky regex source integration test 1.0

This PR is an attempt to fix the RegexSourceIntegrationTest flakiness. My investigation did not reveal any issues, and I was unable to reproduce the failure locally. So I've taken some steps to eliminate what I think could be a race condition in the test.
This is a mirror image of #6459 and is the fix for 1.0

Delete and create all topics before each test starts.
Give the streams application in each test a unique application ID
Create a KafkaStreams instance local to each test.

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

ping @guozhangwang @mjsax @vvcephei @ableegoldman

Java 7 and Java 8 passed.  Java 10 failed.
retest this please

Unrelated test failures in Java10. Java7 timed out. Java8 passed.
Retest this please.

I think Java10 cannot pass on older branches. LGTM.

Java 7 and 8 passed, Java 10 failures unrelated.
retest this please.

@mjsax I've fixed the ConcurrentModificationException manually, can you take another look?

Java 7 passed, Java 8 and 10 failures unrelateed
retest this please

Still +1 (note, I think that Java10 cannot pass Jenkins on 1.0 branch -- this older branch is not compatible)
Call for second review anyof @guozhangwang @vvcephei @ableegoldman

Java 7 passed Java 8 failed 2:21:25 Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
retest this please


Ability to create / move / rename / delete files in their actual structure via favorite.

Ability to create / move / rename / delete files in their actual structure via favorite.
And if possible in the move option, with drag and drop
Is it too much to ask?
lol
Your Extension is being the best for favorites!
Several friends are already using it. Congratulations for your work.

@Emerson-Coelho ,
Thank you for review.
Closing this issue after last release.
If you have any problems, open issue.


Unable to seperate video and screen container.

Hi Muaz bro.
I'm installed all-in-one demo for audio+video+screen (https://www.webrtc-experiment.com/RTCMultiConnection/all-in-one.html) it works properly but i dont know how to change the width of screensharing container and video container seperately? i want to display screen share as seperate container and video as seperate container.Please help me how to seperate video and screenshare different part of the page with various width and height? and also i  added screen share as a buton click to start share screen using
document.getElementById('share-screen').onclick = function() {
connection.addStream({
screen: true,
oneway: true
});};
And stop stream using
document.getElementById('stop-screen').onclick = function() {
connection.removeStream({
screen: true,
stop: true
});};
After that i'm unable to start share screen again.

+1

v3 has this method: connection.resetScreen().
onstream event supports event.stream.isScreen boolean. This boolean can be used to differentiate between screen and other formats. (Supported booleans: isAudio, isVideo or isScreen)
Use window.screenStream.stop() instead of removeStream. The "stop" method should automatically remove stream from remote users' sides.
Please check this wiki for reference:

https://github.com/muaz-khan/RTCMultiConnection/wiki/How-to-remove-video-on-user-left

Thank you for  your response,Can you please let me know . i want to display screen share as seperate container and video as seperate container.Please help me how to seperate video and screenshare different part of the page with various width and height? and also how to seperate local video and remote video container size  one-to-one video call

connection.autoCreateMediaElement = false;
connection.onstream = function(event) {
    if(event.stream.isScreen === true) {
         handleScreen(event);
    }

    if(event.stream.isVideo === true) {
         handleCamera(event);
    }
};

function handleScreen(event) {
    let screenViewer = document.querySelector('#screen-viewer');
    screenViewer.srcObject = event.stream;
}

function handleCamera(event) {
    let videosContainer = document.querySelector('#videos-container');
    let video = document.createElement('video');
    video.autoplay = true;
    video.muted = false;
    video.controls = true;
    video.srcObject = event.stream;
    videosContainer.appendChild(video);
}

event object
event => {
    userid: 'string',
    extra: {},
    stream: {
        isScreen: boolean,
        isVideo: boolean,
        isAudio: boolean
    },
     type: 'string', // local or remote
}

Thank you again for your quickest response,
I'm using RTCMultiConnection-master/demos/One-to-One.html  demo its works fine on my local system but it contains single div for both local and remote videos but i want to separate this() and need to give different width for local and remote video container.please help me, how to do this? Sorry i don't know where i need to change the above source given by you for Audio-Video-Screen.html.


Different getUniqueId after version upgrade

Summary
Different getUniqueId after version upgrade
| Version     | ?  3.1.4 -> 8.0.1  |
| Affected OS | ?  ios |
Current behavior

Install react-native-device-info v3.1.4
Call getUniqueId -> get old ID (id1)
Upgrade to 8.0.1
Call getUniqueId -> get new ID  (id2)
Downgrade to v3.1.4
Call getUniqueId -> get old ID  (id1)
Upgrade to 8.0.1
Call getUniqueId -> get new ID  (id2)
Call syncUniqueId -> get new ID  (id2)
Downgrade to v3.1.4
Call getUniqueId -> get new ID  (id2)

Expected behavior
Always get the same id

@Bardiamist @dmitry-bluescape maybe you know? Only 2 commits after 3.1.4
react-native-device-info/ios/RNDeviceInfo/DeviceUID.m

Did you tried on device or on simulator? I faced with it recently and found out that that happening only on ios simulator.

@Bardiamist on device

@InkOut I don't know what was in 3.1.4. I only added syncUniqueId. That should't any effect on getUniqueId.
Also maybe not helpful but I can say that I just tested update from 7.0.2 to 8.0.1 on iOS (simulator and device) and Android (emulator). And did not meet any problem with device id.

syncUniqueId

I get different UniqueId in different apps on the same phone. What would be the reason?

@enesbildiren95 - check the native APIs used for the getUniqueId implementation, read about how those APIs are implemented and the privacy concerns addressed by the implementation, report findings here.

@mikehardy Thank you. I found the answer I was looking for here. https://developer.android.com/about/versions/oreo/android-8.0-changes#privacy-all That is the expected behaviour on Oreo and above devices.

@InkOut does syncUniqueId fix your problem?

No of cause not... I have no clue what causes this problem. I created a branch which reverts the change: https://github.com/rafaelmaeuer/react-native-device-info/tree/fix-getUniqueId-iOS
This is only a temporary fix until a solution is identified, but for now I don't have enough time and effort.
Feel free to use this branch, I will keep it in sync with this repo's master from time to time.

Easier: just patch it and use patch-package, that way you don't have to do branch maintenance https://github.com/ds300/patch-package

@rafaelmaeuer I think it might be because iOS runs app in background (Push notifications, Preloadings(?)). Could you test this https://stackoverflow.com/questions/40614486/checking-for-ios-device-first-unlock-to-determine-if-items-stored-with-ksecattra solution and crash app if keychain is not available?

the other idea, that we need something like a migration.

Get value with kSecAttrAccessibleAlways
Set value with kSecAttrAccessibleWhenUnlocked
Delete value with kSecAttrAccessibleAlways

the other idea, that we need something like a migration.

Get value with kSecAttrAccessibleAlways
Set value with kSecAttrAccessibleWhenUnlocked
Delete value with kSecAttrAccessibleAlways

if (!_uid) _uid = [[self class] valueForAccessibleAwaysKeychainKey:UIDKey service:UIDKey];
if (!_uid) _uid = [[self class] valueForKeychainKey:UIDKey service:UIDKey];
2.- (void)saveIfNeed {
if (![DeviceUID valueForUserDefaultsKey:UIDKey]) {
[DeviceUID setValue:_uid forUserDefaultsKey:UIDKey];
}
if ([DeviceUID valueForAccessibleAwaysKeychainKey:UIDKey service:UIDKey]) {
[DeviceUID deleteValueForKeychainKey:UIDKey inService:UIDKey];
[DeviceUID setValue:_uid forKeychainKey:UIDKey inService:UIDKey];
}
if (![DeviceUID valueForKeychainKey:UIDKey service:UIDKey]) {
[DeviceUID setValue:_uid forKeychainKey:UIDKey inService:UIDKey];
}
}

I used this method a moth ago, don't find problem so far

Yep also getting this.
I use it for push notifications etc. will migrate to another solution until this lib is fixed.

@matrixyf
From before:

I'm watching this but it's not a use case I personally care about so I'll need some sort of consensus and a PR based on that in order to merge a real forward solution - but please no retrograde (deprecated) motion

A PR would be merged if it had an explanation of the use case(s) that is/are failing (which you have done a bit in your commit) and links to apple's developer documentation supporting your assertions of the old code having problems in your use case and to the documents that show you your use case and all currently supported use cases will be properly handled with the code in your proposed pull request

Hi guys, so I'm facing this issue as well. My use case:
We have a banking app with 2 versions, v1 and v2. v2 is about to be released but we noticed that the different versions of react-native-device info are giving 2 different device IDs.
So when a user who has signed in previously with v1 is trying to sign in on v2, the app is going the 'change device?' flow because the device ID is different. What do you suggest we do here please?
v1
React-native-device-info version: ^8.4.4
Method: DeviceInfo.getUniqueId()
v2
React-native-device-info version: ^10.6.0
Method: DeviceInfo.getUniqueIdSync()

@tkud04 i switched to https://github.com/oblador/react-native-keychain for storing a unique ID.

@tkud04 we patch during npm postinstall
--- node_modules/react-native-device-info/ios/RNDeviceInfo/DeviceUID.m	2022-06-15 11:44:04.000000000 +0200
+++ DeviceUID.m	2022-06-15 11:53:42.000000000 +0200
@@ -91,7 +91,7 @@
 + (NSMutableDictionary *)keychainItemForKey:(NSString *)key service:(NSString *)service {
     NSMutableDictionary *keychainItem = [[NSMutableDictionary alloc] init];
     keychainItem[(__bridge id)kSecClass] = (__bridge id)kSecClassGenericPassword;
-    keychainItem[(__bridge id)kSecAttrAccessible] = (__bridge id)kSecAttrAccessibleAfterFirstUnlock;
+    keychainItem[(__bridge id)kSecAttrAccessible] = (__bridge id)kSecAttrAccessibleAlways;
     keychainItem[(__bridge id)kSecAttrAccount] = key;
     keychainItem[(__bridge id)kSecAttrService] = service;
     return keychainItem;

patch -p0 < DeviceUID.patch
TBH though it's lazy & dangerous because Apple has deprecated and will eventually retire support for kSecAttrAccessibleAlways.


Add changelog documenting 0.2.0 release

+1 with the comments addressed

Thanks. Fixed the caps & the changelog now just says 'Requires Juttle 0.2.0'


19042  not supported

Hello,
Please support, anyone has the INI file?
My win Info: Build 19042
Thanks

Duplicate of https://github.com/stascorp/rdpwrap/issues/1595


Swipe to return Previous page

Hey Jonas,
First of all Thank you for this cool plugin.
I want you add the swipe right to return previous page that we will pop from as my client wants.
Can you please reply ASAP, if it is possible of not.
Thank you.

I'm not quite sure what exactly this issue is about, as swiping to return to the previous page is the core of this package. Do you want to pop multiple pages at once when swiping?

No,
You got me wrong,
I want it like a PageView.
Currently, i can swipe only LTR, not RTL.
note: in your example, for RTL, you used button to navigate.

In that case, using a PageView with a custom transition sounds like the way to go. There are also packages available to simplify this, e.g., transformer_page_view.


⚠ PassThePopcorn has degraded performance

In 9ecf531, PassThePopcorn ($PTP) experienced degraded performance:

HTTP code: 200
Response time: 24149 ms

Resolved: PassThePopcorn performance has improved in 2b39fc4 after 5 minutes.


Can't upload audio and video files

        // Get any Stream — it can be FileStream, MemoryStream or any other type of Stream
        var stream = new MemoryStream(File.ReadAllBytes(textAudio.Text));

        // Construct FirebaseStorage with path to where you want to upload the file and put it there
        var task = new FirebaseStorage("my-bucket.appspot.com")
         .Child("audio")
         .Child(Path.GetFileName(textAudio.Text))
         .PutAsync(stream);

        // Track progress of the upload
        task.Progress.ProgressChanged += (s, ex) => Console.WriteLine($"Progress: {ex.Percentage} %");

        // Await the task to wait until upload is completed and get the download url
        var downloadUrl = await task;

        MessageBox.Show("Download at: " + downloadUrl);

downloadUrl is empty. And when i check the firebase console nothing is uploaded. But the task shows progress until 100%.

Hi, any solution?


SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server session ticket A

I think this is me using up too many ports, but I'd love some confirmation.
Here's the backtrace:
["/usr/local/bundle/gems/http-3.0.0/lib/http/timeout/null.rb:27:in `connect'", "/usr/local/bundle/gems/http-3.0.0/lib/http/timeout/null.rb:27:in `connect_ssl'", "/usr/local/bundle/gems/http-3.0.0/lib/http/timeout/null.rb:36:in `start_tls'", "/usr/local/bundle/gems/http-3.0.0/lib/http/connection.rb:159:in `start_tls'", "/usr/local/bundle/gems/http-3.0.0/lib/http/connection.rb:45:in `initialize'", "/usr/local/bundle/gems/http-3.0.0/lib/http/client.rb:62:in `new'", "/usr/local/bundle/gems/http-3.0.0/lib/http/client.rb:62:in `perform'", "/usr/local/bundle/gems/http-3.0.0/lib/http/client.rb:43:in `request'", "/usr/local/bundle/gems/http-3.0.0/lib/http/chainable.rb:20:in `get'", "/usr/lib/airpump/source/airpump/squad.rb:20:in `public_send'", "/usr/lib/airpump/source/airpump/squad.rb:20:in `initialize'", "/usr/lib/airpump/source/airpump/cluster.rb:45:in `new'", "/usr/lib/airpump/source/airpump/cluster.rb:45:in `block in slam'", "/usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'", "/usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'", "/usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'", "/usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'", "/usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'", "/usr/local/bundle/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'"]

I might be wrong but this seems like related to OpenSSL: https://stackoverflow.com/questions/25814210/opensslsslsslerror-ssl-connect-syscall-returned-5-errno-0-state-sslv3-read

To be clear:

It's not every request
It's not the error in that stack overflow
The server is using openssl 1.0.2g
The client and server are both using ruby 2.4.0

More and more I'm thinking I'm simply running too many threads.

This is a TLS handshake failure. Any number of things can cause it, such as the remote side spontaneously closing the connection, possibly in response to something you did or did not do as part of the handshake, or simply being overloaded/rate limited.

Awesome, thanks so much for the clarification @tarcieri!


When Instance 3 Not Running, I click that instance but it make blue screen now :

here this is an error when 1 instance not working, when I was speedrun, I press reset but instance 3 not working, i just click that instance but it make me to reinstall my computer.
version : 1.4.5

julti is largely untested on such old hardware/OS - update whatever drivers and stuff you can, and make sure you're not pushing your system too hard

ok


[AIRFLOW-2479] Improve doc FAQ section

Make sure you have checked all steps below.
JIRA

[x] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-2479
In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-XXX], code changes always need a JIRA issue.

Description

[x] Here are some details about my PR, including screenshots of any UI changes:
update the faq:

how to improve airflow dag performance.
how to reduce airflow UI page load time.

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.

Code Quality

[ ] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

can you please limit the amount of closing and opening that you do? We have been contacted by Apache Infra explaining to us that we are taking up to 25% of total build time of Travis builds of all Apache projects. Please retry builds on your own account and point to successful builds there if necessary.

@bolkedebruin  sure. But this pr only contains doc change which shouldn't fail any the travis test. Could you or any committer look into why the travis test fail for all the recent prs? thanks.

@feng-tao We're looking into this, but the committers time is also finite ;)

@feng-tao Don't worry regarding CI for this specific PR as it is just a doc update. So you don't need to restart the CI


Add pop to benchmarks

This PR adds gobuffalo/pop to the benchmarks and also fixes deprecations in the python2 script so that it works again.

Thanks!


Update doc on Apache configuration

http://spritelink.github.io/NIPAP/docs/config-www.html only mentions adding a wsgiscriptalias line.. but per default apache will not allow those requests. On Debian jessie, with Apache 2.4.10 I had to add this:
        <Directory /etc/nipap/>
                Require all granted
        </Directory>

        WSGIScriptAlias / /etc/nipap/nipap-www.wsgi

Not the Directory clause which looks different in Apache 2.4 compared to Apache 2.2

I think we should have examples for Apache 2.4 and 2.2...
Are there any downsides / risk with allowing access to /etc/nipap, given that we have sensitive stuff there, like nipap.conf that contains the db credentials? Ie, should the wsgi file be moved elsewhere?

other pkg uses a www directory inside, eg /etc/nipap/www for stuff like this

We could certainly do that!

I just installed the nipap through the packages avaiable on debian, but I agree there are some infos missing if you want for example to use multiple aplications on this server, a simple vhost example with suitable requisites to apache run nipap would be awesome.
Ill appy some options here and if I suceed ill update here

Well, trying to setup here I had some help on irc by kll, and some issues appeared since Im using the latest debian release. The first step was to setup a working virtual host for the nipap service, since ill use this server for aditional vhosts, its prefereable to have a separated setup for nipap.
My apache config under /sites-avaiable/nipap.my.domain.com.conf was:
<VirtualHost *:80>
      ServerName nipap.mydomain.com
      DocumentRoot /var/cache/nipap-www/
      ServerAdmin<EMAIL_ADDRESS>
<Directory "/var/cache/nipap-www">
  AddDefaultCharset utf8
  AllowOverride None
      Order allow,deny
      # Allow from all
      # Allow from <IP_ADDRESS> (I wished to lock up access from some ips, didnt worked yet)
</Directory>

<Ifmodule mod_wsgi.c>
        <Directory /etc/nipap>
        Options None
        Require all granted
        </Directory>
        WSGIScriptAlias / /etc/nipap/nipap-www.wsgi
</IfModule>

   ErrorLog ${APACHE_LOG_DIR}/nip.error.log
   CustomLog ${APACHE_LOG_DIR}/nip.access.log combined

</VirtualHost>

and after adding those lines, yet the application gave some errors on the page "server error 500", and on the server logs I had this 111:

[Mon Jun 29 16:11:43.529175 2015] [wsgi:error] [pid 1398:tid<PHONE_NUMBER>89504] [client <IP_ADDRESS>:62450] Error - <class 'socket.error'>: [Errno 111]

the solution was to change my sources.list.d/nipap repo from stable to testing, so I got version .28 where this was fixed.
Now Ill try to populate the addresses, but if someone was trying to work with debian / vhosts maybe this would help.
Actually I need some help regarding the security part, I wish to restrick ips to access the interface, since other vhosts would be also avaiable on this machine. Maybe isnt the right line of thought, but would work nicely on our intranet :D

I am having some issues with getting nipap working as well on newer Ubuntu distro.  I follow some of the suggestions above for apache 2.4, but I'm still having no luck.  If I look at the apache logs, i see the following:
[Thu Dec 17 13:19:09.388826 2015] [autoindex:error] [pid 717:tid<PHONE_NUMBER>77152] [client <IP_ADDRESS>:55095] AH01276: Cannot serve directory /var/cache/nipap-www/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive
If I go and look at /var/cache/nipap-www, there are no files in there.  I don't believe I skipped any steps and I definitely did an install of the nipap-www package.

@yostie I've completely missed your feedback here. If you are still pursuing this please open a separate issue :)

Nope im all set.  Thanks for the followup.
Sent from Outlook Mobile
On Sat, Jan 30, 2016 at 3:17 AM -0800, "Kristian Larsson"<EMAIL_ADDRESS>wrote:
@yostie I've completely missed your feedback here. If you are still pursuing this please open a separate issue :)
—
Reply to this email directly or view it on GitHub.


Clarification about the comments/grades

If any team wants further clarification regarding the comments or disagree with the grade, you can use this issue to follow up with @MENG2010 or @pooyanjamshidi.

@MENG2010 Thank you for your feedback, it provided us much needed insight and we understand the errors we made in gathering training data. I have two questions, the first is whether this new approach is a reasonable design (task 2 option 2): using the benign samples split 80/20 for training and validation, then testing with each AE (or subset of each for time) separately, as well as comparing to the UM and baseline. This should remove the potential for over-fitting on any particular AE, as well as allow for results of the model's performance to be compared between the different AE's which will give information on where the model lacks?
My second question is more related to the reasoning behind our original design: if we had the time and computational power, would it be an effective approach to generate many AE's, even if they are all still of the same type implemented in Athena already, for training the model? I understand how this would lead to over-fitting on a small number of AE types or if they are from the same dataset used for testing, but with sufficient AE types could this produce better results than using the benign samples for training across AE types potentially not used for training? That was the intent of the original approach which was flawed and limited by time and computing power, but I was curious if done properly, could that approach work. Thanks again

Hi Miles,
The answer to your first question. Yes, it is a reasonable design for this assignment. Go for it.
I will answer your second question later tonight.

Sorry for the late reply to your second question.
It is a good question, thanks for asking!
Your second question is related to the adversarial training approach. I will try to answer it with the best of my knowledge.
Adversarial training technique can improve the model's robustness against an adversary, however, this improvement is gained through the scarification of the accuracy on the benign samples (when there is no adversary) and the computational cost in training. Some studies on adversarial training show the tradeoff between the standard (no adversary) and robust (there are adversaries) accuracy.
Adversarial machine learning is a very difficult problem, the defender has to face an open-ended problem in which the defense model is fed with an input drawn from any distributions: (1) the independent identified distribution (i.i.d.) of which the natural samples were generated --- benign sample; (2) any other distributions --- AEs generated by various attacks (attack types and attack configurations/settings). An AE can be treated as an out-of-distributed (o.o.d.) input drawn from a distribution different from the one we drew the benign samples. Therefore, infinite possible inputs (clean or with any of the infinite possible noises) are sent to the defense. We aim to build a defense that is able to correctly classify the input in most cases (this is so-called the generalizability of the model), rather than a defense that is accurate on only the benign samples or only the particular type(s) of AEs.
Even if you are able to find a defense that is optimized against the BS and all the existing adversaries with a reasonable computational cost, there are numerous new attacks on the way and some of them will successfully fool your defense easily. So, the cost of involving more adversarial examples in the training phase does not necessarily pay-off in order to terminate the arms race between the attacker and the defender.
Further reading:

Aleksander Madry, Aleksandar Makelov, Ludwig Schmidt, Dimitris Tsipras, and Adrian Vladu. Towards Deep Learning Models Resistant to Adversarial Attacks.


docs(guide): convert issue-help to rst

Fixes NODE-2181
Description
What changed?
Are there any files to ignore?

@mbroadst I have changed the instructions to reflect the new test-runner.


Please fix table on page

[The table is too large for the displayed area and the slider is at the bottom. This is extremely unpleasant. This is a very long list. If you want to look at one of the first items you have to scroll down to the bottom of the page slide over and scroll all the way back up.]

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 9ce35226-b40b-3c9f-a37f-585b84aa129e
Version Independent ID: ac9953e2-769a-c115-b1c6-e6f6fc940db2
Content: Filterable properties for the Filter parameter
Content Source: exchange/docs-conceptual/filter-properties.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

Known issue. In fact, this was also an issue back in 2018 and earlier when we were still on TechNet. No good answer, except to architect the topic to not use a table.
You can also use the left and right arrow keys to scroll horizontally.

I thought about how to possibly rework this into a different format, while keeping some of the original table approach and without ending up with too much vertical scrolling. A proposed approach for the first two properties is shown below as an example.
The property "headers" could as well be made into real headers, allowing readers to directly navigate/link to specific properties, but this might end up with a quite large table-of-contents. I can't estimate how that might look in the final documentation, unfortunately.
AcceptMessagesOnlyFrom

LDAP display name
Available on cmdlets
Value

authOrig
Get-DistributionGroup  Get-DynamicDistributionGroup  Get-Mailbox  Get-MailContact  Get-MailPublicFolder  Get-MailUser  Get-RemoteMailbox  Get-UnifiedGroup
String or $null

This filter requires the distinguished name of the individual recipient (a mailbox, mail user, or mail contact). For example, Get-DistributionGroup -Filter "AcceptMessagesOnlyFrom -eq 'CN=Yuudai Uchida,CN=Users,DC=contoso,DC=com'" or Get-DistributionGroup -Filter "AcceptMessagesOnlyFrom -eq 'contoso.com/Users/Angela Gruber'".
To find the distinguished name of the individual recipient, replace  with the name, alias, or email address of the recipient, and run this command: Get-Recipient -Identity "<RecipientIdentity>" | Format-List Name,DistinguishedName.
Although this is a multivalued property, the filter will return a match if the property contains the specified value.
AcceptMessagesOnlyFromDLMembers

LDAP display name
Available on cmdlets
Value

dLMemSubmitPerms
Get-DistributionGroup  Get-DynamicDistributionGroup  Get-Mailbox  Get-MailContact  Get-MailPublicFolder  Get-MailUser  Get-RemoteMailbox  Get-UnifiedGroup
String or $null

This filter requires the distinguished name or canonical distinguished name of the group (a distribution group, mail-enabled security group, or dynamic distribution group). For example, Get-Mailbox -Filter "AcceptMessagesOnlyFromDLMembers -eq 'CN=Marketing Department,CN=Users,DC=contoso,DC=com'". or Get-Mailbox -Filter "AcceptMessagesOnlyFromDLMembers -eq 'contoso.com/Users/Marketing Department'".  To find the distinguished name of the group, replace <GroupIdentity> with the name, alias, or email address of the group, and run one of these commands: Get-DistributionGroup -Identity "<GroupIdentity>" | Format-List Name,DistinguishedName or Get-DynamicDistributionGroup -Identity "<GroupIdentity>" | Format-List Name,DistinguishedName.  Although this is a multivalued property, the filter will return a match if the property contains the specified value.


[SPARK-44168][FOLLOWUP] Change v3.4 GPG_KEY to full key fingerprint

What changes were proposed in this pull request?
Change GPG key from 34F0FC5C to F28C9C925C188C35E345614DEDA00CE834F0FC5C to avoid pontential collision.
The full finger print can get from below cmd:
$ wget https://dist.apache.org/repos/dist/dev/spark/KEYS
$ gpg --import KEYS
$ gpg --fingerprint 34F0FC5C

pub   rsa4096 2015-05-05 [SC]
      F28C 9C92 5C18 8C35 E345  614D EDA0 0CE8 34F0 FC5C
uid           [ unknown] Dongjoon Hyun (CODE SIGNING KEY<EMAIL_ADDRESS>sub   rsa4096 2015-05-05 [E]

Why are the changes needed?

A short gpg key had been added as v3.4.0 gpg key in https://github.com/apache/spark-docker/pull/46 .
The short key 34F0FC5C is from https://dist.apache.org/repos/dist/dev/spark/KEYS
According DOI review comments, https://github.com/docker-library/official-images/pull/13089#issuecomment-1609990551 , this should be the full key fingerprint: F28C9C925C188C35E345614DEDA00CE834F0FC5C (generating a collision for such a short key ID is trivial.
We'd better to switch the short key to full fingerprint

Does this PR introduce any user-facing change?
No
How was this patch tested?
CI passed

cc @HyukjinKwon @zhengruifeng

It only effect on docker image build process (gpg verify process), consider CI already has passed, I will merge this soon to let DOI review. Please let me know if you have more concern.


Encountering SQLITE_BUSY (or SQLITE_BUSY_SNAPSHOT) on multi process concurrent queries only when using transactions

In a scenario where two parallel Node processes using better-sqlite3 perform the same UPDATE queries wrapped in a transaction (either using BetterSQLite API, or manually using BEGIN, COMMIT) concurrently, one UPDATE occasionally throws an exception SQLITE_BUSY (journal DELETE) or SQLITE_BUSY_SNAPSHOT (WAL) well before the 5s retry timeout has passed.
This behaviour disappears if the enclosing transaction is removed.
My understanding from the documentation would be that even with an enclosing transaction, better-sqlite3 should perform a retry automatically within the timeout specified. If this understanding is incorrect, I would appreciate some insight (and possibly extension in the documentation) as to how the transaction scenario is different and how to handle such a situation gracefully in the better-sqlite3 using code.

I did a quick peek (not an expert on that topic):
better-sqlite3 passes the timeout to sqlite3_busy_timeout:
https://github.com/WiseLibs/better-sqlite3/blob/ae23e690b02c00d075d543c66ae7e26c98c46f74/src/objects/database.lzz#L177
but it never calls sqlite3_busy_handler which means the timeout takes no effect? Because:

If the busy callback is NULL, then SQLITE_BUSY is returned immediately upon encountering the lock.
[...]
The default busy callback is NULL.

But in addition the docs also say:

The presence of a busy handler does not guarantee that it will be invoked when there is lock contention. If SQLite determines that invoking the busy handler could result in a deadlock, it will go ahead and return SQLITE_BUSY to the application instead of invoking the busy handler.

So even with properly configured timeout you can run into a case where you immediately get SQLITE_BUSY. This could be the case for you, you need to provide a minimal repo for that. But in either case this would be a SQLite issue because better-sqlite3 itself does not actually implement any timeout or retry logic.
@JoshuaWise am I wrong with my conclusion or does the timeout option not actually do anything without calling sqlite3_busy_handler? But I'm pretty sure I must be wrong because there are tests for the timeout. That SQLITE_BUSY can be thrown regardless holds true either way, which answers this issue.

Also see https://github.com/WiseLibs/better-sqlite3/issues/155

Ok - in short this then means that irrespective of any better-sqlite3 internal timeout handling, there can always be cases of such an exception on writes, which applications that can't afford to just error, need to handle by implementing their own rollback+retry.
I also conclude from your observation of internal timecode handling, that the higher incidence of such an error when using a wrapping transaction is either coincidental or sqlite3 internal behaviour.
Thank you very much for the clarification.


util.inspect's inspect() method is not respected

Hi!
A lot of transports (file, console) use util.inspect for outputting the meta object. Having prettyPrint activated uses util.inspect as per documentation.
util.inspect respects object's inspect(deepth) function to create an inspection representation of itself.
This method is not honored when winston loggers are into play. The root cause is the decycling in common.js around line 125:
        ? exports.clone(cycle.decycle(options.meta))

After the decycle, any methods on the object are gone and even the protoype information is lost.
That way, the later util.inspect just sees a plain hash.
This is especially annoying as it makes logging/reading objects from [moment] (http://momentjs.com/) or BigNumber quite hard to read.

This will be fixed holistically when 1.0.0 ships with formatters because you can choose not to decycle in your formatting. As for how to fix it in 0.x.x that needs investigation.


TestCase for looping within InclusiveGateway

Not sure if it's something that is supposed to work though, but the idea is that in the presence of catchEvent after t2, the engine would execute t2 the required number of times before any events are used to resume the process.

Coverage increased (+1.3%) to 67.911% when pulling 98b03a1a6bb5bd64d5464ec9a14004d830d21a0e on inclusive_loop into 33e759e6e1779e1131dd8f59d090d7899c3318d4 on master.


Normalize languages and topics (#489 continued)

Continuing #489 in this new PR.
WIP - I've only merged main into the branch, resolved conflicts, and undid a few leftovers from earlier false starts so far.

@shiffman Some questions:
If there are no replacements in the lookup map, the bulk normalization on topics and languages could either be:

untouched (ex: bitwise AND)
lowercased (ex: bitwise and)
lowercased + uppercase first character (ex: Bitwise and)

Currently it's option 3, which seems a little off as it's erasing a lot of proper casing in the sources. Option 1 and spot-fixing as needed with the lookup map seems like a better approach to me.
I was also thinking that it would make sense to merge some tags together when they have plural and singular wordings, again using the map. Ex: array and arrays would just be merged as array instead of having distinct entries.

@shiffman Another thing I am realizing now as I see the preview builds not reflecting the changes: we'll have more Gatsby cache issues with this approach because this transformation happens as we create the nodes.
If there is a Gatsby cache available and none of the source JSON files have changed, it won't bother trying to recreate the nodes... Changes to the lookup map would not get applied until the cache is cleared and the nodes are recreated.
I need to think about this a bit more, but one approach that could work is to transform the JSON source files themselves with a node script that runs just before the Gatsby build starts. Or run that script manually once in a while to cleanup the tags commit the changes to the repo.

If there are no replacements in the lookup map, the bulk normalization on topics and languages could either be:

untouched (ex: bitwise AND)
lowercased (ex: bitwise and)
lowercased + uppercase first character (ex: Bitwise and)

Currently it's option 3, which seems a little off as it's erasing a lot of proper casing in the sources. Option 1 and spot-fixing as needed with the lookup map seems like a better approach to me.

I think I would prefer 1 or 2 yes! Let's either leave the casing or lowercase everything. What do you think?

I was also thinking that it would make sense to merge some tags together when they have plural and singular wordings, again using the map. Ex: array and arrays would just be merged as array instead of having distinct entries.

Agreed!

@shiffman Another thing I am realizing now as I see the preview builds not reflecting the changes: we'll have more Gatsby cache issues with this approach because this transformation happens as we create the nodes.
If there is a Gatsby cache available and none of the source JSON files have changed, it won't bother trying to recreate the nodes... Changes to the lookup map would not get applied until the cache is cleared and the nodes are recreated.
I need to think about this a bit more, but one approach that could work is to transform the JSON source files themselves with a node script that runs just before the Gatsby build starts. Or run that script manually once in a while to cleanup the tags and commit the changes to the repo.

Maybe it makes sense to file a separate issue and work on this in its own branch? This way we can merge the work on the topics. And for now it's pretty easy for me to run a "clear cache and build" command from netlify's admin dashboard.

@shiffman Almost done. It works great locally, just need to clean a few things up.
I've been doing a first content pass to try to make the topics clearer and more useful by themselves in the filter dropdown.
Some ideas that emerged, let me know if you agree:

Capitalize correctly software, brands, people's names, etc
Merge singular and plural together (ex: arrays and array => array)
Suffix every game tag with the word game. Not everyone might know what Plinko or Mad Libs is.
Tags that represent a p5.js function stylized as .functionName() (ex: .beginShape() instead of beginShape)
I feel like we could drop the creative coding and creative code topics since they would apply to 99% of the content
What do you think about merging basics, for beginners, beginners, beginner into one tag? I like for beginners
nature of code tag only matches two challenges. Should we rename this as Nature of Code book and tag more content with this? (separate task)

This looks great to me!
One general comment is that I think that more tags that are shorter / succinct is better. For example instead of having a tag be "Atari Asteroids Game" I would have 3 tags: ["Atari", "Asteroids", "Game"]—what do you think?
I think we could also discuss this forever so I'm happy to merge this as is to get the framework up and running and we can tweak as necessary!

One general comment is that I think that more tags that are shorter / succinct is better. For example instead of having a tag be "Atari Asteroids Game" I would have 3 tags: ["Atari", "Asteroids", "Game"]—what do you think?

Yeah that makes sense if there is enough content to tag for each. I think it's OK to repeat some words if it makes a tag clearer on its own. You could still have ["Atari", "Asteroids game", "games"] for example. I liked that I could type "game" and actually see all the games right there in the topics, as well as a "games" umbrella term.

You're totally right though, it's easy to overanalyze this, and it can always be iterated upon. I'll pull this out of draft mode, let me know if you want to make any tweaks before merge.
About the implementation, as mentioned in a previous comment I did actually make the transformation happen with a nodejs script that modifies the source JSON files. That script runs before the build process on CI, and if you ever want to make these changes permanently to the source JSON, you can just run it and commit the changes. That approach also means no Gatsby cache issues.

Hold on - didn't see there was a unit test failing. It could be because the CI is still on node 14.x
One more thing, I did notice that tags that contain characters with special meaning for regex do not work correctly on the site. Ex: https://thecodingtrain.com/challenges/lang/all/topic/a*-algorithm
With this PR, some replacements use parens and it will make more tags return no results. I'll work on a fix for this today, I know what the problem is.

It was the GitHub actions nodejs version that was making the unit test fail. Fixed now.
Preview build: https://deploy-preview-799--codingtrain.netlify.app/

Awesome, this is great, merging!


Fix race condition for volume external event

If an external volume event comes in at the same time as we are doing
native-docker population, it is possible to hit a race condition where
a volume is created twice. This fix prevents that by doing an
in-transaction lookup of the volume in the storage pool before creating
it.

LGTM.

LGTM


Replace schedule icon

Issue

close #274

Overview (Required)

Write the schedule icon(xml vector drawable) to material-icons-extended
Four xml vector drawables are found in this repo and icon_schedule.xml is replaceable with material-icons-extended.

feature/sessions/src/main/res/drawable/calendar_add_on.xml
feature/sessions/src/main/res/drawable/icon_droidkaigi_logo.xml
feature/sessions/src/main/res/drawable/icon_schedule.xml
feature/sessions/src/main/res/drawable/img_keyvisual.xml

Links

https://github.com/DroidKaigi/conference-app-2023/issues/274#issuecomment-1679794769

Screenshot

Before
After

Looks great! Thanks


Add kava chain

:)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
251 unchanged lines in 8 files lost coverage.
Overall coverage decreased (-6.0%) to 84.553%

Files with Coverage Reduction
New Missed Lines
%

gnosis/util/util.py
3
66.67%

gnosis/eth/multicall.py
9
88.35%

gnosis/eth/oracles/superfluid.py
9
55.0%

gnosis/eth/oracles/kyber.py
11
59.18%

gnosis/eth/oracles/cowswap.py
22
35.14%

gnosis/eth/oracles/uniswap_v3.py
28
56.34%

gnosis/eth/ethereum_client.py
38
81.52%

gnosis/eth/oracles/oracles.py
131
50.46%

Totals

Change from base Build<PHONE_NUMBER>:
-6.0%

Covered Lines:
3525

Relevant Lines:
4169

💛  - Coveralls


fix Issue 16661 - failing dstring/wstring format string

fix incorrect pointer diff computation introduced by PR #4427
commit 2be035584f31131ebd3e2123b19f457c326d070d

Auto-merge toggled on


*: add Not flag for ExistsSubqueryExpr

Parser part of the cherry-pick for https://github.com/pingcap/tidb/pull/7842

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


add babel-polyfill

in order to add Object.assign and Array.includes support for older browsers (#1302)

I'm not sure this is the best way to do this, it's a shame it has to be added to each entry point.

i would prefer to do this in webpack.config.js, adding 'babel-polyfill' to the entry array
https://babeljs.io/docs/usage/polyfill/
module.exports = {
   entry: ['babel-polyfill', './app/js']
};

@ascott I'll try to do it that way, I'm a webpack newbie so I wasn't sure how that lined up with this structure:
  entry: {
    'css-theme': APP_DIR + '/javascripts/css-theme.js',
    dashboard: APP_DIR + '/javascripts/dashboard/Dashboard.jsx',
    explore: APP_DIR + '/javascripts/explore/explore.jsx',
    explorev2: APP_DIR + '/javascripts/explorev2/index.jsx',
    welcome: APP_DIR + '/javascripts/welcome.js',
    standalone: APP_DIR + '/javascripts/standalone.js',
    common: APP_DIR + '/javascripts/common.js',
    sqllab: APP_DIR + '/javascripts/SqlLab/index.jsx',
  },

I assume I just add the entry and then I'd have to add the built asset to the html template?

you would remove the require('babel-polyfill'); line in the templates and add babel-polyfill to the entry arrays like this...
entry: {
  'css-theme': ['babel-polyfill', APP_DIR + '/javascripts/css-theme.js'],
  ...
},

the entry object can take either strings to a single file or an array.
thanks for the pr!

@gschrader turns out i had a branch with this work started already so I opened a PR with the working implementation. https://github.com/airbnb/caravel/pull/1323

@ascott great! I'll try your branch with the javafx browser.


test(es/typescript): Verify TypeScript stripped output

Description:

BREAKING CHANGE:

Related issue (if exists):

I'll fix CI with another PR


Bug of encoding drug with 'Pubchem' deal with "DTI". [Case Study 1(a)]

Nice job of DeepPurpose！There is a Bug when encoding drug with 'Pubchem' deal with "DTI". [Case Study 1(a)]
net.train(train, val, test)

File "/data5/jlk/Project/012-DeepPurpose/DeepPurpose-master/DeepPurpose/DTI.py", line 422, in train
for i, (v_d, v_p, label) in enumerate(training_generator):
File "/home/jlk/software/anaconda3/envs/DeepPurpose/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 345, in next
data = self._next_data()
File "/home/jlk/software/anaconda3/envs/DeepPurpose/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 385, in _next_data
data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
File "/home/jlk/software/anaconda3/envs/DeepPurpose/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch
return self.collate_fn(data)
File "/home/jlk/software/anaconda3/envs/DeepPurpose/lib/python3.7/site-packages/torch/utils/data/_utils/collate.py", line 79, in default_collate
return [default_collate(samples) for samples in transposed]
File "/home/jlk/software/anaconda3/envs/DeepPurpose/lib/python3.7/site-packages/torch/utils/data/_utils/collate.py", line 79, in
return [default_collate(samples) for samples in transposed]
File "/home/jlk/software/anaconda3/envs/DeepPurpose/lib/python3.7/site-packages/torch/utils/data/_utils/collate.py", line 64, in default_collate
return default_collate([torch.as_tensor(b) for b in batch])
File "/home/jlk/software/anaconda3/envs/DeepPurpose/lib/python3.7/site-packages/torch/utils/data/_utils/collate.py", line 55, in default_collate
return torch.stack(batch, 0, out=out)
RuntimeError: Expected object of scalar type Long but got scalar type Double for sequence element 38 in sequence argument at position #1 'tensors'

Hi, thanks, could you provide a full code snippet to reproduce the bug?

from DeepPurpose import DTI as models
from DeepPurpose.utils import *
from DeepPurpose.dataset import *
X_drug, X_target, y  = process_BindingDB('/home/Project/DeepPurpose/DATA/BindingDB_All.tsv',y = 'Kd', binary = False, convert_to_log = True)
Type in the encoding names for drug/protein.
drug_encoding, target_encoding = 'Pubchem', 'AAC'
train, val, test = data_process(X_drug, X_target, y, drug_encoding, target_encoding,split_method='cold_protein',frac=[0.7,0.1,0.2])
print(train)
print(train.columns)
Generate new model using default parameters; also allow model tuning via input parameters.
config = generate_config(drug_encoding, target_encoding, transformer_n_layer_target = 8)
net = models.model_initialize(**config)
Train the new model.
Detailed output including a tidy table storing validation loss, metrics, AUC curves figures and etc. are stored in the ./result folder.
net.train(train, val, test)

Hey, i think this issue is due to some weird SMILES for the new version of bindingDB dataset. It works fine with other datasets and the previous BindingDB version.
For example, this code works for me:
from DeepPurpose import DTI as models
from DeepPurpose.utils import *
from DeepPurpose.dataset import *
X_drug, X_target, y = load_process_DAVIS()
drug_encoding, target_encoding = 'Pubchem', 'AAC'
train, val, test = data_process(X_drug[:200], X_target[:200], y[:200], drug_encoding, target_encoding,split_method='cold_protein',frac=[0.7,0.1,0.2])
config = generate_config(drug_encoding, target_encoding, transformer_n_layer_target = 8)
net = models.model_initialize(**config)
net.train(train)


set befta-fw version to 8.7.11-CCD-4349.2.1

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CCD-4349
Change description
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

This has been created for testing purposes and can be closed.


Update ASCII check to allow for UTF-8 characters

The const char *serialNoteTransaction(char *json, char **jsonResponse) function in n_serial.c discards data which contains any character which isn't ASCII (values 1-127). Unfortunately, this breaks if any field contains UTF-8 characters outside that range. Documentation says UTF-8 is supported, so I assume this is left over from before (https://dev.blues.io/hardware/notecard-datasheet/note-wbex-500/ )
Here's an example {"req":"card.time"} response which may cause the issue: {"minutes":-180,"lat":-36.7327225,"lon":-73.15059765625,"area":"Talcahuano Biobío Region","country":"CL","zone":"-03,America/Santiago","time":1665850318}
The í in Biobío is a UTF-8 character expressed with the following byte sequence: 0xc3 0xad, which causes the error "serial communications error {io}"

You could do a more complex check to see if characters are valid UTF-8, but that would be a much bigger change.

Ran into the same issue with another unit with area "Valparaíso Valparaiso Region"


[FLINK-36181][build] Bump target Java version to 11 and drop support for Java 8

What is the purpose of the change
Bump target Java version to 11 and drop support for Java 8.
Brief change log

Update the default target Java version to 11.

Verifying this change
This change is already covered by existing tests.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@flinkbot run azure


Update to MakeMKV 1.17.3

updated version, verified URL links would work..

Same as PR https://github.com/jlesage/docker-makemkv/pull/164.


Emmet expansion

h50 should expand to height: 50px; but expands to <h50></h50>.
I run into this about every 10 seconds. :\

I am not familiar with Emmet unfortunately :/ Also I am not sure if we can do anything about that? Shouldn't it be fixed in Emmet itself? Maybe it doesn't work well with template literals.

Emmet expands abbreviations for html and css. So span{hello} turns into hello. And m10 (in CSS' scope) expands to margin: 10px;.
This works with HTML in JSX via https://gist.github.com/mxstbr/361ddb22057f0a01762240be209321f0
But not with CSS.
I'm not sure how he's doing it exactly, but it's possible to have various scopes within the same file. For instance, here we're in an HTML file, expanding HTML abbreviations, but it's able to expand CSS abbreviations inside of style="[here]"...

I'd think it would be an issue with Emmet, but we can't expect him to add a custom scope for every new thing like


Open up HTTP request headers on Turbolinks.visit()

This PR gives the user an option to specify HTTP request headers when programmatically making a Turbolink.visit() request.
I am doing something similar with turbolinks-classic. I'm posting here for two reasons. Ideally to get this merged in so when we upgrade we can hit the ground running. And second, to ensure this doesn't open up any security (or other) holes.

Thanks for the pull request. I’m curious what kind of request headers you need to set, and why you’d only want to set them on calls to Turbolinks.visit but not on link clicks.

I'm building a hybrid iOS app. Each time the user taps a link the request is cancelled and then "redone" via Turbolinks. In between these two phases some HTTP headers are added to set a variety of information. This ranges from the user's ID, their auth token, and other state-based meta data that is stored on the client.

Is there a better way to do what I am trying to accomplish, @sstephenson?

Hey @joemasilotti,
I don’t see a good reason to expose this on Turbolinks.visit. I think you’d be better served by listening for the turbolinks:request-start event and setting any custom headers on the XHR there:
document.addEventListener("turbolinks:request-start", function(event) {
  var xhr = event.data.xhr
  xhr.setRequestHeader("X-User-Id", "123")
  // ...
})

That way the headers apply to visits from link clicks too.
Closing this for now, but feel free to re-open if I’m missing something.

BTW, I just realized the request-start documentation in the Events section doesn’t cover this use case. I’d be happy to accept a pull request that covers setting custom headers in the readme.

Ah, I wasn't aware that the XHR lives on the event. I just submitted a small patch noting how to do this. I felt that it didn't fit well in the Events section, though. I'm happy to move it if you disagree. Thanks for the help!


Pylance return type specification breaks docstring syntax highlighting

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.56.2
OS Version: Windows 10

Steps to Reproduce:

fully stub out a function header
generate a docstring
The syntax highlighting for the docstring looks like code

This is probably a well known issue but I had a very hard time searching for a solution. By and large, pylance works really well but there is a bit of an issue when I add return specifications to the header. For example:
def foo(x: int) -> str:
"""this is a input docstring"""
will produce the docstring as if it were code with things like the word input treated as a reserved word.

/extPython


Feature: Clipboard support

Thanks for your amazing work on this!
Sorry if I've overlooking it, but I think there's currently no clipboard handling support to write/read to clipboard.
In case that's true, it would be great if you could add it.
Thanks for considering!

wAuto depends on my other project - wNim, which provides full support for reading and writing to the clipboard. You can find more information about this functionality in the wUtils documentation, along with an example.
Moreover, I agree that integrating these features into wAuto is a good suggestion. Thanks.


Speedup SpaceToDepth

Speedup SpaceToDepth on CPU. Thread over batch and memcpy over channel. Speedup 1.1x ~ 3x for large number of batches or channels.
On Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz

Input shape (N x H x W x C)
Block size
Original (M items / s)
This PR (M items / s)

1 x 64 x 64 x 1
2
83
73

16 x 64 x 64 x 1
2
241
337

32 x 64 x 64 x 1
2
261
559

1 x 128 x 128x 1
2
162
132

16 x 128 x 128 x 1
2
308
772

32 x 128 x 128 x 1
2
318
931

1 x 64 x 64 x 3
2
238
221

16 x 64 x 64 x 3
2
617
1059

32 x 64 x 64 x 3
2
665
1609

1 x 128 x 128x 3
2
437
391

16 x 128 x 128 x 3
2
737
2146

32 x 128 x 128 x 3
2
754
2221

1 x 64 x 64 x 15
2
691
841

16 x 64 x 64 x 15
2
1375
2752

32 x 64 x 64 x 15
2
1369
2024

1 x 128 x 128x 15
2
1216
1770

16 x 128 x 128 x 15
2
1248
2159

32 x 128 x 128 x 15
2
415
2062

1 x 64 x 64 x 64
2
1455
2590

16 x 64 x 64 x 64
2
1478
2165

32 x 64 x 64 x 64
2
1259
1658

1 x 128 x 128x 64
2
1725
2080

16 x 128 x 128 x 64
2
1255
1552

32 x 128 x 128 x 64
2
1209
1644

1 x 64 x 64 x 64
4
1541
2698

16 x 64 x 64 x 64
4
1602
2136

32 x 64 x 64 x 64
4
1346
1616

1 x 128 x 128x 64
4
1618
1969

16 x 128 x 128 x 64
4
1252
1579

32 x 128 x 128 x 64
4
1243
1656

where the number is computed as time / (iterations * N * H * W * C).

@WindQAQ Can you please check @cantonios's comments and keep us posted ? Thanks!

@WindQAQ  Any update on this PR? Please. Thanks!

It has been 19 days with no activity and the awaiting response label was assigned. Is this PR still valid? Assigning the stalled label. Please comment to reassure me that this is still being worked on.

I'm going to go ahead and close this PR, because it seems to have stalled. If you're still interested in pursing this (and responding to my comments), please feel free to reopen!


Chrome Android 66 innerHeight doesn't change after swipe

The window.innerHeight value changes when the URL Bar at the top is visible and hidden. But after swiping, it is locked. This bug only happens on Chrome Android. I've created a element with position:fixed, top:0, bottom:0, border:solid 10px red.

The screenshots show what it looks like before swiping with URL Bar visible and hidden. The fixed element on the right adapts to the height.
After swiping, the fixed element is locked to the height that it is in at the time of swiping. The third screenshot shows what happens when the URL Bar is visible when swiping happens, then it is hidden after scrolling.
Also, the tap position is also about 1 cm off when this happens, ie. if there is a link there, you need to tap about 1cm higher to click on it.
The code is here but you will need to be in from a html file on Chrome android: https://jsfiddle.net/yoenf6mw/

Amazing. Thanks for helping out.