Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: TypeError: Return value of OCA\DAV\Connector\Sabre\FilesPlugin::OCA\DAV\Connector\Sabre\{closure}() must be of the type int or null, float returned #34674

Closed
6 of 9 tasks
maxicarlos08 opened this issue Oct 19, 2022 · 38 comments · Fixed by #34905

Comments

@maxicarlos08
Copy link

⚠️ This issue respects the following points: ⚠️

  • This is a bug, not a question or a configuration/webserver/proxy issue.
  • This issue is not already reported on Github (I've searched it).
  • Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
  • Nextcloud Server is running on 64bit capable CPU, PHP and OS.
  • I agree to follow Nextcloud's Code of Conduct.

Bug description

After upgrading to Nextcloud version 25 today, I was unable to view my files getting this error:

This directory is unavailable, please check the logs or contact the administrator

Steps to reproduce

  1. Upgrade to Nextcloud version 25
  2. Try to access files

Expected behavior

I expect the file app to work normally

Installation method

Community Manual installation with Archive

Operating system

Debian/Ubuntu

PHP engine version

PHP 7.4

Web server

Nginx

Database engine version

PostgreSQL

Is this bug present after an update or on a fresh install?

Updated to a major version (ex. 22.2.3 to 23.0.1)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other

Configuration report

{                                  
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "klapstuhl.maxicarlos.de"
        ],
        "default_phone_region": "ES",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "25.0.0.18",
        "overwrite.cli.url": "https:\/\/klapstuhl.maxicarlos.de",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "maintenance": false,
        "filelocking.enabled": true,
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 0,
            "timeout": 0
        },
        "enable_previews": true,
        "updater.release.channel": "stable",
        "theme": "",
        "loglevel": 2,
        "updater.secret": "***REMOVED SENSITIVE VALUE***"
    }   
}

List of activated Apps

Enabled:
  - admin_audit: 1.15.0
  - bruteforcesettings: 2.5.0
  - cloud_federation_api: 1.8.0
  - comments: 1.15.0
  - contactsinteraction: 1.6.0
  - dav: 1.24.0
  - federatedfilesharing: 1.15.0
  - files: 1.20.1
  - files_pdfviewer: 2.6.0
  - files_rightclick: 1.4.0
  - files_sharing: 1.17.0
  - files_trashbin: 1.15.0
  - files_versions: 1.18.0
  - firstrunwizard: 2.14.0
  - logreader: 2.10.0
  - lookup_server_connector: 1.13.0
  - notes: 4.6.0
  - notifications: 2.13.1
  - oauth2: 1.13.0
  - password_policy: 1.15.0
  - photos: 2.0.0
  - previewgenerator: 5.1.0
  - privacy: 1.9.0
  - provisioning_api: 1.15.0
  - related_resources: 1.0.1
  - serverinfo: 1.15.0
  - settings: 1.7.0
  - sharebymail: 1.15.0
  - systemtags: 1.15.0
  - text: 3.6.0
  - theming: 2.0.0
  - twofactor_backupcodes: 1.14.0
  - twofactor_totp: 7.0.0
  - updatenotification: 1.15.0
  - user_status: 1.5.0
  - viewer: 1.9.0
  - workflowengine: 2.7.0
Disabled:
  - activity: 2.16.0
  - calendar: 4.0.1
  - circles: 24.0.1
  - dashboard: 7.4.0
  - deck: 1.7.1
  - drawio: 1.0.3
  - encryption
  - federation: 1.14.0
  - files_external
  - files_texteditor: 2.14.0
  - mail: 2.0.3
  - maps: 0.2.1
  - music: 1.6.0
  - nextcloud_announcements: 1.13.0
  - recommendations: 1.3.0
  - spreed: 15.0.0
  - support: 1.7.0
  - survey_client: 1.12.0
  - suspicious_login
  - tasks: 0.14.5
  - user_ldap
  - weather_status: 1.4.0

Nextcloud Signing status

Does not work, it redirects to /apps/files (which gives me the above error)

Nextcloud Logs

[webdav] Error: TypeError: Return value of OCA\DAV\Connector\Sabre\FilesPlugin::OCA\DAV\Connector\Sabre\{closure}() must be of the type int or null, float returned at <<closure>>

 0. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/PropFind.php line 95
    OCA\DAV\Connector\Sabre\FilesPlugin->OCA\DAV\Connector\Sabre\{closure}("*** sensitive parameters replaced ***")
 1. /var/www/nextcloud/apps/dav/lib/Connector/Sabre/FilesPlugin.php line 356
    Sabre\DAV\PropFind->handle()
 2. /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    OCA\DAV\Connector\Sabre\FilesPlugin->handleGetProperties()
 3. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 1052
    Sabre\DAV\Server->emit()
 4. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 984
    Sabre\DAV\Server->getPropertiesByNode()
 5. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 1662
    Sabre\DAV\Server->getPropertiesIteratorForPath()
 6. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 1647
    Sabre\DAV\Server->writeMultiStatus()
 7. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 346
    Sabre\DAV\Server->generateMultiStatus()
 8. /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\CorePlugin->httpPropFind()
 9. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 472
    Sabre\DAV\Server->emit()
10. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 253
    Sabre\DAV\Server->invokeMethod()
11. /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 321
    Sabre\DAV\Server->start()
12. /var/www/nextcloud/apps/dav/lib/Server.php line 360
    Sabre\DAV\Server->exec()
13. /var/www/nextcloud/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
14. /var/www/nextcloud/remote.php line 167
    require_once("/var/www/nextcl ... p")

PROPFIND /remote.php/dav/files/maxi/
from 192.168.1.1 by maxi at 2022-10-19T17:26:42+00:00

Additional info

I'm running Nextcloud on a 64 bit raspberry pi 4b, however https://server.url/settings/admin/overview tells me that:

It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read [the documentation page about this ↗](https://docs.nextcloud.com/server/25/go.php?to=admin-system-requirements).```
And the documentation link is broken (file not found)
@maxicarlos08 maxicarlos08 added 0. Needs triage Pending check for reproducibility or if it fits our roadmap bug labels Oct 19, 2022
@szaimen
Copy link
Contributor

szaimen commented Oct 19, 2022

Thank you for taking the time to report a bug! 👍

As this seems to be a setup issue I would like to ask you to raise your question in the forums: https://help.nextcloud.com

@szaimen szaimen closed this as not planned Won't fix, can't repro, duplicate, stale Oct 19, 2022
@szaimen
Copy link
Contributor

szaimen commented Oct 19, 2022

As for the admin link, thanks for reporting! We'll look into it!

@maxicarlos08
Copy link
Author

As this seems to be a setup issue

I don't think this is a setup issue, the Nextcloud instance has been running fine for about 3 years until this happened.

I also opened a question in the forum as you suggested, and there seem to be more people having this issue on a Raspberry Pi.

Another user found out that users created after the upgrade are not affected by the issue

@szaimen
Copy link
Contributor

szaimen commented Oct 19, 2022

This is a setup issue and only happening since you are still running some 32bit components.

@szaimen
Copy link
Contributor

szaimen commented Oct 19, 2022

@maxicarlos08
Copy link
Author

Sadly I can't upgrade my Raspberry to 64 bit anytime soon (I have a lot of other stuff running on it, so it wouldn't be a simple backup, reinstall & recover).

To prevent this from happening to other 32 bit users, there should be at least a warning before the upgrade mentioning the platform deprecation.

@szaimen
Copy link
Contributor

szaimen commented Oct 20, 2022

I agree. Will look into that in the next days.

Just so that you know:

We didnt plan to actively remove 32-bit compatibility but it seems like we did for 25 without knowing as we do not test against 32-bit which is why we removed 32-bit support in the first place.

@iDontWantAUsername
Copy link

Could the System Requirements page be updated to reflect that 64bit only is supported:
https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html

This currently implies that 64bit is recommended and 32bit will work but not that well - not that it will be totally broken:

CPU Architecture and OS
A 64bit CPU and 64bit OS is required for Nextcloud to run well.

@MichaIng
Copy link
Member

MichaIng commented Oct 21, 2022

I followed the decision to formally drop 32-bit support as of long standing issues with the trashbin and >2 GiB file downloads from web interface on 32-bit systems. But implementing the same limitation the trashbin had (automatic int=>float conversion?) into the DAV connector, so that neither desktop client sync, nor files app in web UI are working, i.e. core functionality, probably wasn't clever without informing users (also not via #32117) sufficiently early to allow hardware migration, and of course blocking the upgrade to the incompatible NC version. EDIT: Thanks @szaimen, sorry for not reading.

I test the beta on my Raspberry Pi 2 v1.1 (32-bit CPU) production system nearly every time beforehand, sadly not this time, otherwise I could have brought up the topic earlier.

There is a workaround, but such on the trashbin causes other issues (AFAIK >2 GiB overall trashbin data worked with it, but individual >2 GiB files didn't work, or so), which likely is similar here with the DAV connector.

Users created after the upgrade likely don't have the issue because/until they have >2 GiB of files 😉.


I guess there are no plans to revert the change to make files app and sync work again? Because then we quickly need to disable our Nextcloud install option on DietPi for 32-bit architectures for release tomorrow 😉.

@szaimen
Copy link
Contributor

szaimen commented Oct 21, 2022

We didnt plan to actively remove 32-bit compatibility but it seems like we did for 25 without knowing as we do not test against 32-bit which is why we removed 32-bit support in the first place.

@MichaIng
Copy link
Member

MichaIng commented Oct 21, 2022

Here btw is the culprit: nextcloud/3rdparty@dd3f5da#diff-15aea57cf25666fcad29ed4fc1ba78e5d8e447c574a877bb4fdc9cb87e5ff4b2

sabre/http/CHANGELOG.md

5.1.5 (2022-07-09)
------------------

* #184 Remove 4GB file size workaround for 32bit OS / Stream Videos on IOS (@schoetju)

A related if (PHP_INT_SIZE > 4) { block in sabre/http/lib/Sapi.php has gone which was for 32-bit support. A pain that this breaking change has been introduced with a patch version. So clearly no fault of Nextcloud team, such change in a patch version of a 3rdparty subsubmodule is quickly overseen.

This individual change could in theory be reverted? At least for users which are currently stuck with 32-bit hardware this would be safer than applying the workaround I linked above so that a function returns a float instead of the expected integer.

@MichaIng
Copy link
Member

The related PR explicitly mentions Nextcloud and states that this workaround in sabre/http code wouldn't be required anymore: sabre-io/http#184

Would be more than a coincidence if this was right but NC files app+sync still broken in the release this was merged 🤔.

@szaimen
Copy link
Contributor

szaimen commented Oct 21, 2022

Seems like they have the same problem: Their CI also does not runs against 32-bit so they could not have found this issue without testing it manually...

@adrianog91
Copy link

I have the same issue with the same configuration of @maxicarlos08

@MichaIng
Copy link
Member

MichaIng commented Oct 22, 2022

All expected on every 32-bit system. Please see the linked workaround above or migrate hardware+OS to 64-bit.

@j-be
Copy link

j-be commented Oct 22, 2022

@MichaIng I was just hit by this issue (i.e. Return value of OCA\DAV\Connector\Sabre\FilesPlugin::OCA\DAV\Connector\Sabre\{closure}() must be of the type int or null, float returned) after upgrading and I think the version bump linked above is not the culprit.

In detail: I have been running Nextcloud 24.0.6 for quite some time now without any issues (expect for #15117). And after reverting from $OC_Version = array(25,0,0,18); back to $OC_Version = array(24,0,6,1); and restoring the pre-upgrade backup the issue is gone again.

Now 24.0.6 already depends on "sabre/dav": "4.4.0", same as 25.0.0 does (see https://github.com/nextcloud/server/blob/v24.0.6/build/integration/composer.json).

I am running Nextcloud on an Odroid HC-2 (armv7, so 32 Bit only). I'd be happy to help debugging if needed.

EDIT: For completeness:

  • Ubuntu 20.04.5 LTS
  • Kernel Linux odroid 4.14.180-178
  • php7.4-fpm
  • nginx

@MichaIng
Copy link
Member

Thanks for the hint, you're right, also the sabre/http version with removed 32-bit workaround is present in NC24 already 🤔. Looks like I was on the wrong track, and the sabre guys were right that the workaround isn't required anymore.

So we need to have a deeper look into how sabre/dav is used differently by NC25, causing the issue.

@MichaIng MichaIng added 1. to develop Accepted and waiting to be taken care of regression 25-feedback and removed 0. Needs triage Pending check for reproducibility or if it fits our roadmap labels Oct 22, 2022
@MichaIng MichaIng reopened this Oct 22, 2022
MichaIng added a commit to MichaIng/DietPi that referenced this issue Oct 22, 2022
- DietPi-Software | Nextcloud: Disable for 32-bit ARM for now, as core functionality is broken with NC25: nextcloud/server#34674
- DietPi-Software | FuguHub: Do no overwrite /home/bd/tuncnstr.dat on reinstalls
@MichaIng
Copy link
Member

MichaIng commented Oct 31, 2022

Not sure how I could have overseen it, here the PR which added int type hint: 829490a#diff-1d6ed4804160da213bc58248990a6936622ce53100a23535d207dba153f7e759

I guess it's either reverting best practise type hint or accepting 32-bit support now has really gone.

@Slartibartfast27
Copy link

I also have this problem and would greatly appreciate a fix for 32bit Operating Systems to avoid unnecessary hardware replacements and to save resources (apart from the time needed to setup everything fresh again, which would cost me days).

@j-be
Copy link

j-be commented Oct 31, 2022

@Slartibartfast27 there is a fix at https://help.nextcloud.com/t/cannot-access-files-after-upgrade-to-nextcloud-25/147823/6?u=michaing

And I hate to be that guy, but imho you really should rethink your backup/rollback strategy. Something like this can happen, all the time. And recovering from it should be not more than a minor inconvenience.

@j-be
Copy link

j-be commented Oct 31, 2022

@MichaIng About dropping 32 bit support: I think that is a bad idea. I agree, that corporate users won't mind: they are all on 64 bit by now. But home users aren't - I for one am not.

I agree, that there is no x86 32 bit machine worth keeping alive - they are at best a waste of energy. But that argument does imho not hold for ARMv7. There are still a lot of ARM 32 bit computers able to run Nextcloud for friends and family.

@iDontWantAUsername
Copy link

If 32bit support is dropped though it should be properly documented not just a vague 64bit is recommended. The commit has actually broken 32bit support so it isn't just recommended it is required.

@MichaIng
Copy link
Member

MichaIng commented Nov 1, 2022

Most importantly the update to NC25 should then not be offered on 32-bit systems.

Generally on this matter: I agree if there are no strong reasons, at least this core functionally should be preserved on 32-bit. The change was a best practice annotation from lint, not related to any actual issue, AFAIK. However, there were other long standing issues with 32-bit (>2 GiB trashbin, >2 GiB downloads) and the CI/CD pipeline does not contain 32-bit tests (runs on 64-bit), so such issues can slip through any time later, if not someone with 32-bit system tests the beta/RC. Sadly I didn't do it exactly this release while always tested new NC releases beforehand before.

@szaimen szaimen added 2. developing Work in progress and removed 1. to develop Accepted and waiting to be taken care of labels Nov 1, 2022
@j-be
Copy link

j-be commented Nov 1, 2022

Most importantly the update to NC25 should then not be offered on 32-bit systems.

Yes, that would be a good idea indeed. But from how I understand this piece of code it is currently not possible to filter specific architectures when fetching updates? So I don't see how we could prevent 32 bit NC24 users to upgrade.

AFAIK. However, there were other long standing issues with 32-bit (>2 GiB trashbin, >2 GiB downloads)

Never ran into the first one, but I - long time ago - tried to get a fix for large downloads merged (see #15117 and #27562) and it was rejected back then. The patch still applies (including NC25) and still fixes the issue, which is afaik. still (i.e. more than a year after) present on 32 bit. I can't seem to find the proposed "option for specifying the archive format" on my NC 24. So please understand my saltiness on the "32 bit has problems" topic.

CI/CD pipeline does not contain 32-bit tests (runs on 64-bit)

There may still be the option to have them running inside a Docker container - Debian still offers 32 bit x86 images. I quickly threw together something at https://github.com/j-be/nextcloud-ci/. There are still a couple of test failures even on AMD64 - not sure why. But there are definitely a lot more in the NC25 386 run (see https://github.com/j-be/nextcloud-ci/actions/runs/3369893196).

So even if GitHub does not provide 32 bit runners: there may still be ways to get 32 bit CIs with GitHub Actions.

I think the question that needs to be answered is: Will the Nextcloud team put effort into keeping 32 bit supported or not. And imho. this decision then needs to be communicated to the community. "Not recommending" 32 bit (EDIT: and recommending to switch to a 64 bit OS) is all nice and good, but for people like me, who are running 32 bit hardware that recommendation is of no use.

@MichaIng
Copy link
Member

MichaIng commented Nov 1, 2022

it is currently not possible to filter specific architectures when fetching updates?

That is true, although based on PHP_INT_MAX it wouldn't be so hard to implement.

I think the question that needs to be answered is: Will the Nextcloud team put effort into keeping 32 bit supported or not.

That decision has been made with officially requiring (according to docs, not only "recommending") 64-bit, I guess: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#cpu-architecture-and-os

So given that any other solution than reverting int type hint is likely much more effort, to me the question is whether to revert this for a while and implementing an arch-based update blocker later and communication via e.g. also admin panel warning is better than adding the blocker directly. Or letting users run into the issue and finding the workaround 😅. I'm actually surprised about the low number of users participating here (though there are some other related issues open).

@Slartibartfast27
Copy link

And I hate to be that guy, but imho you really should rethink your backup/rollback strategy. Something like this can happen, all the time. And recovering from it should be not more than a minor inconvenience.

Hello @j-be , thanks for the link to the fix ;-) This worked also for me.
I already have backups (daily tgz-Backup of the database + files to a NAS with Snapshots, mirrored to a remote location), which I could restore within a few minutes, if I knew there is a problem. But my zabbix monitoring did not report any problems watching http://nextcloud....com/status.php for expected content "installed":true,"maintenance":false,"needsDbUpgrade":false

BUT: I primarly use the calender. Sometimes I don't use files for weeks. So it might happen, that I do not recognize a problem with files for weeks, which makes a rollback barely impossible without loosing potentially weeks of calendar changes.

From my perspective it would be ideal, if nextcloud would not start at all anymore if the system is not compatible. Then it would be easy to rollback.

@yuriry
Copy link

yuriry commented Nov 18, 2022

Most importantly the update to NC25 should then not be offered on 32-bit systems.

So true! My server is armv7l, and it'll be a while before I can upgrade to 64 bit. Just ran into this problem after upgrading to v25 - v24 is still offering an upgrade for 32 bit systems :( This screenshot is from my backup v 24.0.7 - does not mention anything about 64 bit.
image

@MichaIng
Copy link
Member

MichaIng commented Nov 18, 2022

With next Nextcloud 25.0.2, 32-bit will work again, and the upgrade blocker to v26 is already in place: c124456

@rsudev
Copy link

rsudev commented Nov 24, 2022

I also only today observed that the file sync was broken after recently upgrading to 25.0.1...
Thanks for re-instating the 32bit support on the already rolled out version!

I am looking into an upgrade to 64bit hardware as well, but this will take some more month to happen (I run nextcloud on my NAS)

@zeekoe
Copy link

zeekoe commented Nov 25, 2022

Thanks a lot for fixing this, it took me some time to find out what the issue was. I don't plan to upgrade my hardware (armv7l, as most of us) any time soon, so really hoping for a 32 bit LTS NC 25... :) If it needs some paid subscription to be viable, let me know and I surely would consider.

@bcutter
Copy link

bcutter commented Nov 26, 2022

Great. NC v25 (updated from 24.0.7.1 to 25.0.1.1 already following my personal never update to the initial major release, updating to first XX.Y.Z versions where Z equals 1 should be safe rule) broken for me too. No files in web, no desktop client sync (Windows endpoints). Nextcloud team is always so great when it comes to featuring new stuff...

https://nextcloud.com/blog/press_releases/nextcloud-hub-3-release-ai-photos/

...but informing admin users in advance of an update (not to think of blocking/not showing the update, that on the apps level hasn't been merged until today) that the system does not meet the requirements... nope!

Same BS like with single apps now happens for the core too. Thankfully the workaround / future fix seems to work for now and buys important time for making migration plans - that will be at least a full weekend, possibly even 3 to 4 full days just thinking of what else is running on my Nextcloud Pi.

  1. Communcation, dear NC team, it's all about communication...
  2. ...and yes, at the same time reading https://docs.nextcloud.com/server/25/admin_manual/installation/system_requirements.html before updating to a new major release is key. That's the new NUMBER ONE point on my upgrading check list.

Summary: If both parts contribute, updates will not end up in total desasters.

Looking that the fix https://github.com/nextcloud/server/pull/34905/files will be shipped with NC v25.0.2, I might tweak my never update to the initial major release, updating to first XX.Y.Z versions where Z equals 1 should be safe rule and increment Z from 1 to 2 😄

I would appreciate a 32 bit LTS version too, but I don't think that is gonna happen. Instead, now having time until October 2023 according to https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule (EOL of NC v25) and assuming, NC v25 will continue to work on 32 bit OS/platforms (⚠ confirmation please ⚠), that should be enough time to reinstall with a 64 bit OS.

@szaimen
Copy link
Contributor

szaimen commented Nov 29, 2022

https://help.nextcloud.com/t/deprecation-of-32-bit-support-ends-completely-with-nextcloud-26/150926

@lapineige
Copy link

Problem still here : #34905 (comment)

Maybe this should be reopened ?

@MichaIng
Copy link
Member

The issue when using a quota did not exist before NC25?

@lapineige
Copy link

It did not.

@MichaIng
Copy link
Member

PR up: #35832

@lapineige
Copy link

Replaced by #35734

Thanks a lot !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.