Wowza Community

Aws plugin breaks application with no errors

I’m developing a plugin to move recorded files to S3, I had a lot of issues with S3FS so I decided to use the AWS Java SDK, however there seems to be an problem when I import the required libraries, everything just stops, but nothing is added to the logs to indicate the problem. I don’t have a lot of experience with Java so I’m not really sure how to debug this.

I’ve added the AWS Jar files into the project, Eclipse recognises the references below, when I export the file it’s about 40MB bigger than it was before I imported them, so it seems to be including them. I’ve added the exported .jar to the libs folder and the reference to the app/Application.xml conf file (it was all working before I added the AWS SDK).

When I connect (using flash) and would normally receive “NetConnection.Connect.Success”, it just doesn’t receive anything, no errors, just no response at all. Nothing is added to the access or error logs to indicate there was any issue or even a connection attempt.

If I remove all code from the plugin except these AWS imports it still breaks, if I remove just these imports (and references to the libraries) the everything works perfectly. The application seems to be crashing when it attempts to load these, but with no logs or warnings in Eclipse, I’m just not sure why. These is exactly the same running locally and on an EC2 server using the Wowza BYOL AMI.

import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.PutObjectRequest;

You might try to remote debug the EC2 instance instead. Roger suggested this tool

notes from Roger’s experience:

On EC2 you would probably have to open the port on security group. Compile as normal and then upload the jar and restart Wowza with debug enabled. Then in eclipse, start a remote debug session, you can add breakpoints as normal. It’s a bit slow sometimes but should be fine for what he is doing

What I normally do is reduce the size of the thread pools as much as possible when debugging so everything loads quicker. Put them back to normal after testing.

One thing to remember is you have to manually build and upload each time. I have forgotten sometimes and it gets confusing

Richard