mit-dig / punya

Punya Framework powered by MIT App Inventor Technology

Home Page:http://punya.mit.edu/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AppInventor not being updated with build progress (IOException during progress report)

william-vw opened this issue · comments

I deployed the buildserver on a separate machine, and configured AppInventor (appengine-web.xml) to use the remote build server (both servers are on a local network). When building an app, the build server is called and the APK is successfully built. However, the AppInventor page is not being updated with the build progress ; it is stuck on 50%. I see a bunch of these errors in the build output:

IOException during progress report

build_output_ubuntu.txt

Build server: Ubuntu 18.04 (java-8-openjdk-amd64/)
AppInventor server: Windows 10 (java oracle 1.8.0_201)

Which makes me believe that the build server is not able to contact AppInventor. As mentioned, I'm running the AppInventor and build servers on a local network - I know the documentation says that "The buildserver machine must be reachable from the public internet" (Section 6.2) - but that's currently not an option for me.

Affects

  • Designer
  • Blocks editor
  • Companion
  • Compiled apps
  • Buildserver
  • Debugging
  • Other... (please describe)

Expected behavior

For the build progress in AppInventor to proceed normally.

Steps to reproduce

Run the AppInventor and build servers on a local network, and update appengine-web.xml to point towards the buildserver's local IP address.

Under this scenario you'll also need to specify appengine.host in appengine-web.xml to point to the IP address of the host running the appengine code.

I updated the following in appengine-web.xml:

<property name="build.server.host" value="192.168.2.29:9990" />
...
<property name="appengine.host" value="192.168.2.13:8888" />

see here for the full file:
appengine-web.txt

The build server still prints the following as CallbackUrl:
INFO: CallbackURL: http://localhost:8888/ode2/receivebuild/d6z4s2okr19f9fc3304gbpp3fpt2vnne9q596lcghg9xt7ocm74f6typ9w6ipags4o9ntmr avm2cojkti40aaerma0jb1qhv1si7ndevwiwuh8btad8lwnmyl1z4cta6yiegk0qadu/build/Android

see here for the full output:
buildserver_output.txt

It seems that com.google.appinventor.server.project.youngandroid.YoungAndroidProjectService was only using the appengine.host URL when running on a production server. I updated the code, did a rebuild and it's working now.

I created a pull request.