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

Dependency problems and seg faults on AWS AMI #15

Open
edhgoose opened this issue Feb 15, 2017 · 7 comments
Open

Dependency problems and seg faults on AWS AMI #15

edhgoose opened this issue Feb 15, 2017 · 7 comments

Comments

@edhgoose
Copy link

Hi,

I'm not sure if this is the right place for this, but hopefully this can get to the right people?

I had a lot of trouble upgrading to php70 this afternoon from php56, and part of the problem is incompatibility between the igbinary version available on AWS AMIs in the yum repo and one that this library can use.

I installed the below, after a quick yum search igbinary:

Name        : php70-pecl-igbinary
Arch        : x86_64
Version     : 1.2.2
Release     : 0.1.20151217git2b7c703.5.amzn1
Size        : 54 k
Repo        : amzn-main/latest
Summary     : Replacement for the standard PHP serializer
URL         : http://pecl.php.net/package/igbinary

Unfortunately - this version (1.2.2) is incompatible with something in this AWS memcached client library and/or php7 as it threw multiple seg faults (I'm happy to provide a core dump if required).

It would appear running pecl install igbinary instead gets you a PHP7 version of igbinary (2.0.1).

This is alluded to in the README of this repo, but I only found this by manually unzipping the 5.6 version of the client library from https://eu-west-1.console.aws.amazon.com/elasticache/home?region=eu-west-1#client-download: and trying the README. It'd be great if there was documentation within the AWS console / the packages were maintained to ensure compatability.

Hope that makes sense. If I can be of use by providing code dumps from the seg faults I was seeing from the 1.2.2 version of igbinary I'd be happy to!

Cheers
Ed

@sodabrew
Copy link
Contributor

For PHP 7 you need igbinary 2.x with memcached 3.x (The AWS ElastiCache memcached client is a lightly modified php-memcached 3.x.)

https://github.com/php-memcached-dev/php-memcached/blob/master/README.markdown#dependencies

@edhgoose
Copy link
Author

Thanks @sodabrew - now I've got it setup and working I can totally understand that. I guess my question/issue is if you were downloading the Memcache client for the first time, there is nothing to provide you with that information. The package from the AWS console comes with no readme and has no additional information or install, and there's no links to documentation.

Is there anything that can be done to make it easier for users?

@sodabrew
Copy link
Contributor

@malyeyev-AMZN might be able to help with the posted documentation / requirements?

@malyeyev-AMZN
Copy link
Contributor

@edhgoose:

This is alluded to in the README of this repo, but I only found this by manually unzipping the 5.6 version of the client library from https://eu-west-1.console.aws.amazon.com/elasticache/home?region=eu-west-1#client-download: and trying the README. It'd be great if there was documentation within the AWS console / the packages were maintained to ensure compatability.

That's odd, the source of this package does come with a README describing igbinary instructions:
php7 branch README.markdown
master (php5.x) branch README.markdown

@edhgoose
Copy link
Author

I think these screenshots below best illustrates my scenario.

I've never known that the Elasticache library was an open source library until a couple of days ago and I've always downloaded the Elasticache library from the URL above (https://eu-west-1.console.aws.amazon.com/elasticache/home?region=eu-west-1#client-download:). If I hadn't installed the 5.6 version before and had some understanding of how it worked, I'd be stumped.

PHP 7 Elasticache Library download

If I contrast with this screenshot below, the PHP 5.6 library is a very different beast. There is a package.xml, a README, an INSTALL file, an example ini file and a class file with the various methods in.

PHP 5.6 Elasticache Library download

Does that make sense?

If it helps, the sha256 of the 5.6 library is 0f1b1ec4ac5a926bd792026c1f7d6e5a9b710c4437443a3051e1fb4f8c9b08a2 and the 7.0 library is e9a6bb5982f1a7cb7ccc28c70f5c4b8eb5ceec7ad4ead2492a71845df245fb66

@malyeyev-AMZN
Copy link
Contributor

Thank you for a detailed report. I have opened a ticket internally to track this and hopefully we'll have a chance to fix it at some point.

Are you still experiencing segfaults or any other issues now that you're using igbinary 2.0.1?

@edhgoose
Copy link
Author

edhgoose commented Feb 18, 2017 via email

barshaul pushed a commit to barshaul/aws-elasticache-cluster-client-memcached-for-php that referenced this issue Mar 13, 2022
Fix compile error with g++ -std=c++0x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants