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

amazon-kinesis-producer-0.14.0/amazon-kinesis-producer-native-binaries does not contain windows binaries #284

Open
artembilan opened this issue Nov 21, 2019 · 19 comments

Comments

@artembilan
Copy link

See what we have in Maven Central: https://repo1.maven.org/maven2/com/amazonaws/amazon-kinesis-producer/0.14.0/

At the same time the previous version 0.13.1 is OK.

Thanks

@ScottDennison
Copy link

ScottDennison commented Nov 21, 2019

Unfortunatey, the release notes for 0.14.0 state
"Note: Windows platform will be unsupported going forward for this library."

As someone who's current task at work is to develop an application that must put to kinesis, for which this library sounds perfect, but is developing on a windows machine, this is disappointing news. It is also not what I would expect from Amazon.

@artembilan
Copy link
Author

Thanks @ScottDennison , for the pointer !

Well, that's really unfortunate for this library to lose a whole bunch of users...
We can live with that in the future when we get used already for the fact, but for now we just fail with NPE instead of reasonable error message:

Caused by: java.lang.RuntimeException: Could not copy native binaries to temp directory C:\Users\ARTEMB~1\AppData\Local\Temp\amazon-kinesis-producer-native-binaries
	at com.amazonaws.services.kinesis.producer.KinesisProducer.extractBinaries(KinesisProducer.java:908)
	at com.amazonaws.services.kinesis.producer.KinesisProducer.<init>(KinesisProducer.java:245)
	at org.springframework.integration.aws.kinesis.KplKclIntegrationTests$TestConfiguration.kplMessageHandler(KplKclIntegrationTests.java:167)
	at org.springframework.integration.aws.kinesis.KplKclIntegrationTests$TestConfiguration$$EnhancerBySpringCGLIB$$e1d24458.CGLIB$kplMessageHandler$3(<generated>)
	at org.springframework.integration.aws.kinesis.KplKclIntegrationTests$TestConfiguration$$EnhancerBySpringCGLIB$$e1d24458$$FastClassBySpringCGLIB$$8e067b04.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
	at org.springframework.integration.aws.kinesis.KplKclIntegrationTests$TestConfiguration$$EnhancerBySpringCGLIB$$e1d24458.kplMessageHandler(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	... 82 more
Caused by: java.lang.NullPointerException
	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2314)
	at org.apache.commons.io.IOUtils.copy(IOUtils.java:2270)
	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2291)
	at org.apache.commons.io.IOUtils.copy(IOUtils.java:2246)
	at com.amazonaws.services.kinesis.producer.HashedFileCopier.copyFileFrom(HashedFileCopier.java:52)
	at com.amazonaws.services.kinesis.producer.KinesisProducer.extractBinaries(KinesisProducer.java:894)

artembilan added a commit to spring-projects/spring-integration-aws that referenced this issue Nov 21, 2019
It turns out that KPL doesn't support Windows any more.

See: awslabs/amazon-kinesis-producer#284
@jburnitz
Copy link

this is a break of semver

@Cory-Bradshaw
Copy link
Contributor

Thank you for opening this issue to help track customers impacted by version 0.14.0 not shipping with windows binaries. Please +1 this issue to help us prioritize adding this binary back into the released libraries.

@Cory-Bradshaw Cory-Bradshaw pinned this issue Feb 25, 2020
@brainstorm
Copy link

brainstorm commented Apr 16, 2020

@Cory-Bradshaw Is there any justification for this decision (not ship Windows native bins from 0.14.x onwards)? I was just developing an application and bumped into this... there does not seem to be any reason on the README other than the note. I'm curious about the underlying rationale:

  1. CI/CD for windows target breaking at some point and not being fixed?
  2. Some OS-level issue on newer windows such as security restrictions, certificates, etc...?
  3. Simply lack of AWS engineer time or interest to fix it?
  4. Arbitrary internal managerial decision?
  5. producer native binary missing for windows from kpl 0.12.0 and above causing crash while trying to create the producer #113 (comment) ?

Perhaps the community can step forward, take it from there and fix it at some point in the future if the main reason(s) behind are just a few technical issues to overcome?

@Cory-Bradshaw
Copy link
Contributor

@brainstorm ,

The underlying reason was due to the technical problems with supporting a windows build environment in the KPL, which required having separate branches to have a window's buildable KPL, and lack of resources to setup and configure the windows build environment. This is something we would like to support again, but we are currently focused on higher impact feature deliveries for our customers.

If you or another customer can provide a PR that includes a travis setup for windows to build this component from the master branch, it will definitely be something we can add back into the project.

@Menighin
Copy link

Menighin commented Sep 28, 2020

Hi @Cory-Bradshaw , do you guys have any plans to support Windows again in a near future? (8-6 months-)
Just to decide if I go to Linux / WSL or if I can wait for some time :)

@artembilan
Copy link
Author

Sorry, I don't support this project. I also need Windows for my target solutions based on this project.
Not sure why you ask me to do something... That's exactly my request to AWS to bring Windows support back.

Thanks for understanding!

@mikeUtah
Copy link

Any update on this?

@ryber
Copy link

ryber commented Jul 28, 2022

I actually don't care that it doesn't support windows per se as the server runs linux BUT,

This error makes it impossible for windows users to even run unit tests that happen to new up the KinesisProducer. Devs should be able to at least WORK with the library in systems, even if they are not going to hook up to Kinesis.

I would tend to say that a constructor should NOT copy things around on disk, and it if DOES it should throw a IOException, not a unspecific RuntimeException. If this action was moved to where the binaries were actually needed rather than on construction it would help.

@ryber
Copy link

ryber commented Jul 28, 2022

Also, if there are no windows binaries then the error should say that, rather than a NPE.

@jburnitz
Copy link

jburnitz commented Jul 28, 2022 via email

@gabrielfmagalhaes
Copy link

Sad to see that this still is an issue

@ahmed-anas
Copy link

OOh wow, biggest "Screw you windows" I've ever seen

@Akansha0398
Copy link

Akansha0398 commented Nov 21, 2023

this issue still persists with 0.15.8 version

@madorb
Copy link

madorb commented Dec 12, 2023

this documentation that claims windows binaries are included should probably updated eh? https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-dl-install.html

@SquallxLeonhart
Copy link

Hey there. Any updates for this? The latest version is 0.15.10 and still nothing. It's really a shame.

@carek88
Copy link

carek88 commented May 22, 2024

any ideas where can we take the binaries from?

@apirvane
Copy link

The fact that the Windows binaries are not supported anymore is such a bummer and a huge surprise coming from Amazon which did not brought them back even now after years of complaints.
This problem eliminates completely the option to develop an app on Windows systems using KPL ... it is such a disappointment.

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