php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #78560 500 on package download https://pecl.php.net/get/ssh2-1.2.tgz
Submitted: 2019-09-18 12:46 UTC Modified: 2019-12-06 16:35 UTC
Votes:19
Avg. Score:4.2 ± 0.9
Reproduced:18 of 18 (100.0%)
Same Version:6 (33.3%)
Same OS:5 (27.8%)
From: BWATERS at SOLUTIONSBYWATERS dot COM Assigned: derick (profile)
Status: Closed Package: Systems problem
PHP Version: Irrelevant OS: irrellevant
Private report: No CVE-ID: None
 [2019-09-18 12:46 UTC] BWATERS at SOLUTIONSBYWATERS dot COM
Description:
------------
When I try to download the ssh package

https://pecl.php.net/get/ssh2-1.2.tgz

I receive a 500 internal service error

Looks like this was previously fixed with rsync, but it's back

Test script:
---------------
curl https://pecl.php.net/get/ssh2-1.2.tgz


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2019-09-18 12:58 UTC] cmb@php.net
-Status: Open +Status: Verified -Package: *Web Server problem +Package: ssh2
 [2019-09-19 07:46 UTC] langemeijer@php.net
-Package: ssh2 +Package: Systems problem
 [2019-09-19 07:46 UTC] langemeijer@php.net
@cmb How is this a ssh2 package problem?

URL https://pecl.php.net/get/ssh2 does work, and links to the 1.2 version I uploaded recently.

If someone could explain how I caused a 500 Internal Server Error and there is something I can do I'd be happy to help, but as far as I can see there is nothing I can do now.

Calling it a sysops-problem for now hoping this bugreport finds the right people.

@bwaters as a workaround please download the package on https://pecl.php.net/get/ssh2
 [2019-09-19 11:11 UTC] cmb@php.net
> @cmb How is this a ssh2 package problem?

Well, it probably isn't, but it is definitely not a Web server
problem.  Sorry for the noise. :)
 [2019-09-23 09:11 UTC] arnaud dot goulpeau at guest-suite dot com
As mentioned in the related bug, the url https://pecl.php.net/get/ssh2-1.2.tgz still leads to a 500.

I know the workaround url https://pecl.php.net/get/ssh2 works by hand, but since tools like Scrutinizer, composer and other automatic tools relies on what you put in the page https://pecl.php.net/package/ssh2. 

So the url https://pecl.php.net/get/ssh2-1.2.tgz should work, as the workaround url cannot be used by the majority of users.

Also, please notice that the url https://pecl.php.net/get/ssh2-1.1.tgz works.

For the case when another Scrutinizer user comes. A Scrutinizer staff member helped me to unlock the issue with an extra bit of conf :
build:
    dependencies:
        before:
            - sudo apt-get -y install libssh2-1-dev && echo "y" | pecl install ssh2-1.1.2

Many thanks for your help.
 [2019-09-24 07:20 UTC] patpilus at gmail dot com
I can confirm this issue. If you want to install the newest ssh2 version on the dockerized environment you can do this workaround until fixed:

```
    RUN wget https://pecl.php.net/get/ssh2 -O /tmp/ssh2-1.2.tgz \
    && pear install /tmp/ssh2-1.2.tgz \
    && docker-php-ext-enable apcu ssh2 \
```
 [2019-09-26 14:48 UTC] zimt@php.net
@cmb you seem to be right about the webserver, but it doesn't seem to be a problem with ssh2 itself either.

However a few more information might help to figure this one out:

So a few additional information:
web-pecl/public_html/get allows for 6 variants on how to request a package from pecl.php.net. 

The variant that seems to have the status 500 issue is the "Specific file" one, which causes HTTPdownload in web-pecl/src/Release.php:425 to be called with the 3rd parameter set to the filename.

other releases can be requested without problems through the "Specific file" variant, which seems to indicate that the issue is with the entry in the files table specific for the ssh2-1.2.tgz filename. 

Maybe someone with access to the database can verify or rebut this suspicion?
 [2019-10-22 09:43 UTC] langemeijer@php.net
Possible relevant info: I've tried to upload this package a few times, but my package.xml was broken. My guess is that broken upload packages are still stored in the `files` table, with the same `basename`, but with a fullpath that points to a non-existing file.

If that is true, the query on line web-pecl/src/Release.php:447 gives the wrong file.

SELECT `fullpath`, `release`, `id` FROM files WHERE UPPER(basename) = ?

As @zimt Peter wrote, I don't know what's in this table for the ssh2 extension, and I'm just guessing, but as basename is not defined to be unique in table `files`, at least there is an issue there.
 [2019-11-28 14:48 UTC] shushenghong at gmail dot com
still not fixed, team work?
 [2019-11-30 13:56 UTC] glen at pld-linux dot org
perhaps if pecl website maintainers are unable to fix simple 500 error over two months, ssh2 package maintainer just uploads new version like 1.2.1?
 [2019-12-06 16:34 UTC] derick@php.net
This should be fixed now. There were indeed odd records in the database which I had to manually purge.
 [2019-12-06 16:35 UTC] cmb@php.net
-Status: Verified +Status: Closed -Assigned To: +Assigned To: derick
 [2019-12-06 16:35 UTC] cmb@php.net
This issue has just been fixed by Derick! \o/
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 02:01:29 2024 UTC