Sockets don't work any more

208 views
Skip to first unread message

Emanuele Ziglioli

unread,
May 15, 2016, 12:45:17 AM5/15/16
to Google App Engine
Hi there,

we use (passive) FTP and sockets have always been unreliable. Although, by retrying in a task queue, usually they would work.
For the past few days, they've stopped working altogether. For example

System error: errno: 113, detail:no route to host
java.net.SocketException: System error: errno: 113, detail:no route to host
	at com.google.appengine.api.socket.SocketApiHelper.translateError(SocketApiHelper.java:102)
	at com.google.appengine.api.socket.AppEngineSocketImpl.processConnectError(AppEngineSocketImpl.java:396)
	at com.google.appengine.api.socket.AppEngineSocketImpl.createSocket(AppEngineSocketImpl.java:498)
	at com.google.appengine.api.socket.AppEngineSocketImpl.connectToAddress(AppEngineSocketImpl.java:362)
	at com.google.appengine.api.socket.AppEngineSocketImpl.connect(AppEngineSocketImpl.java:352)
	at java.net.Socket.connect(Socket.java:612)
	at java.net.Socket.connect(Socket.java:540)
	at java.net.Socket.<init>(Socket.java:437)
	at java.net.Socket.<init>(Socket.java:220)
	at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:514)

I've tried using a different FTP server, it didn't help.
This service is critical to us. Please fix it!

Emanuele

Emanuele Ziglioli

unread,
May 15, 2016, 10:03:02 PM5/15/16
to Google App Engine
Luckily I've found out that some sites now offer GPS Rinex files via http (for probably 30 years, FTP was the main medium of choice), so I've spent about 3h porting our code to access those files that way. Can I bill Google for that?
Not giving up on GAE yet, despite the continuous headache.
Just don't expect to use FTP, it's now been silently declared unsupported.

Emanuele

Nicholas (Google Cloud Support)

unread,
May 18, 2016, 10:18:47 AM5/18/16
to Google App Engine
Thank you for posting your issue here though the App Engine public issue tracker would be a far better forum for this sort of report. I would strongly suggest filing a new issue with what you've provided above and adding a link to it here so that others sharing your experience may follow through to 'star' your issue.

In this new issue, be sure to include the following:
  • A thorough description of the issue
  • Stack trace as you've provided above
  • App Engine SDK version
  • Code sample that can reliably reproduce this behavior so that we can reproduce this ourselves
  • A time frame of when you started experiencing this issue and if it persists
With the information requested above in a new public issue, we can investigate this appropriately.

Josh Moore

unread,
May 18, 2016, 10:22:03 AM5/18/16
to google-a...@googlegroups.com
FTP is explicitly not supported for the Sockets API.  See "Limits and Restrictions": https://cloud.google.com/appengine/docs/java/sockets/ 

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/c6f7244e-3e37-4e6b-9138-ee39fdd6285d%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--

Josh Moore | Cloud Solutions Engineer | josh...@google.com | 

Emanuele Ziglioli

unread,
May 18, 2016, 9:34:00 PM5/18/16
to Google App Engine
Yes, I saw that and that's why I wrote "silently declared unsupported". People were using FTP on GAE for quite some time:

I wish support people had some experience actually using App Engine.
Perhaps then you would feel some of our frustration too.
Anyway, I've given up on FTP now, still clinging to GAE but what a joke of a product.

Emanuele (a 5 year paying customer)

Alex Martelli

unread,
May 18, 2016, 11:59:28 PM5/18/16
to google-a...@googlegroups.com
Ciao Emanuele,

(strong temptation to switch to Italian, presumably your native language as well as mine, since the following is more emotional than technical, and Italian's great at that... but, let's resist for the sake of keeping the thread readable by all!),

> I wish support people had some experience actually using App Engine.

Many of us do. Being tech lead of 1:many support, a big chunk of my work is to develop (and code-review, advise on, debug, etc etc,) software for internal consumption, and the vast majority of it is on App Engine (in Python) -- which I love, because the whole circle of software development (esp. with Python!-) is my top skill and passion (close behind is technical writing... esp. about Python!-). (If you wonder how I ended up in support -- after 10+ years with Google I was sniffing around for new challenges within it, and, partly based on my reputation on StackOverflow, one of 1:many support's key channels, I was offered this opportunity).

My love story with App Engine goes back to before it was named that way, much less offered to the public -- back then, early in my Google years, it was a 20% project nicknamed after a Greek mythological figure. Not close to my job back then (I was uber tech lead, Production), nor could I scrounge more 20% time (I was always spending all of my 20% in other tasks), but I heartily encouraged my reports, direct and indirect, to fully take their 20% -- and to use it to help what would later become App Engine. I always supported it whole-heartedly, including urging my friend Guido van Rossum (Python's inventor) to join that team when he spent some years at Google (of course his contributions were on the Python side of things!), and using it for any project that would fit (I also originated the hooks-based unit-testing approach that later matured into what's known on the Python side of things as the `testbed` module).

To this day, I still find it the best platform I've ever developed for (with the possible exception of early Unix versions, BSD 4.3 included but System V excluded, before the hockeystick curve in complexity that kicked in around that time -- but back then I developed in C and TCL, so, counting the language as part of the platform, App Engine still wins:-). Modules AKA services, and the ability to run different modules with different scaling features and machine sizes, are really game-changers within the App Engine world, from my point of view -- it's getting better and better! Don't let me get started on Flex Runtime and how you can make up an app with one or two modules in Flex and others in standard runtimes, including in different languages...

My current Director Luke Stone, in his recent post https://cloudplatform.googleblog.com/2016/04/why-Google-App-Engine-rocks-a-Google-engineers-take.html , was kind enough to credit me as "a friend" who helped convince him to try App Engine to deploy apps -- he's now in charge of all of Google Cloud Platform support (which is how and why I now report to him). As a Director I suspect he doesn't get anywhere as much time to develop software as, engineer to the core!, he'd crave to have, but, when he DOES do development -- App Engine is there for him, better than ever.


> Perhaps then you would feel some of our frustration too.

Oh, we do, of course -- and, more generally, frustration, on whatever platform!, about deprecation of features (whether documented or serendipitously discovered) that we used to use in our software. But, what's the alternative? Never deprecating anything -- leading to bloated platforms cluttered with Lava Flow anti-patterns because you can never remove any feature at all. No thanks. Both Java, apparently your chosen language, and Python, most definitely my own, have deprecated features aplenty over the years -- and, they're better platforms because of that, frustrating as it may be each and every time one's hit by that.

But, how does that frustration of ours improve your quality of life, at all?

If you know any platform that was perfect from day one (so it never had to take anything away: remember, that's the definition of perfection as given by Antoine de Saint-Exupery, best known as the author of "Le Petit Prince" but actually a great engineer too) I'd be curious to hear about it (except maybe Unix V7 -- nothing was ever explicitly taken away... but still, quite a few undocumented tricks that used to work back then did stop working in later Unix versions, and apparently, since FTP was never documented to work but you rail against it working no more, you consider "undoc tricks going away" tantamount to explicit, deliberate deprecations of once-documented features).

πάντα ῥεῖ -- that's life in this sublunar world...


> Anyway, I've given up on FTP now,

If you can avoid it you're better off without it. If I *HAD* to have it in an App Engine app, I'd segregate it to a Flex Runtime module (AKA service by what's apparently emerging as the new naming of the same App Engine concept), and channel every FTP interaction through it. I haven't needed to do this surgery/refactoring for FTP specifically, but I've dealt with similar cases for other old, obsolete protocols -- gritting my teeth and, just as you wish, feeling frustrated (I was spending a couple days of my precious, ever-scarce software development time, not improving my SW, but just working around some new restriction) -- but eventually seeing daylight again and resuming upwards movement.

> still clinging to GAE but what a joke of a product.

...and THAT is where some part of me wishes we were using Italian as it would allow me to express the utter totality and intensity of my disagreement VERY colorfully -- but doing that in English would be very rude and no doubt a violation of some TOS or other:-).

As is typical in Italian, appropriate hand gestures would also help expression (so, feel free to imagine the gestures I'm making at this point!-). Maybe you and I should arrange a Google Hangout 1:1 video meet, so we can both speak our beloved native Italian AND expressively gesture at each other to work out frustration and anger (unfortunately I haven't yet convinced my colleagues developing Hangouts to add the "tarallucci e vino" feature that would be indispensable to properly express the ending of such a joint resolution -- I can get great imported taralli AND most Italian wines at great prices here in California, with the signal exception of my favorite Sangiovese di Romagna -- but, that's kind of a sidetrack, sorry).


Alex


Emanuele Ziglioli

unread,
May 19, 2016, 12:51:50 AM5/19/16
to Google App Engine
Grazie Alex,

colourful answer, it made me smile!
I wish we had Tarallucci&Vino here in New Zealand, they're hard to come by.

Anyway, good to hear a bit about the background and spirit of App Engine, although I don't think it has always maintained its original promise.
Correct me if I'm wrong: App Engine's promise was "just worry about your code, we'll do the rest".
Well, actually that's not the case. Pretty much every single library has to be ported in order to work on GAE, if we're lucky.
I've tried and tried, and shared whenever I could. But eventually we get little reward in terms of added features (especially on the Datastore front), instead we keep getting hit by the spectre of deprecation. I feel a like a knight on the wall from Game of Thrones' Night's Watch: I can see the deprecation of e-mail coming....

On a happier note, deploying new versions has always been painless. I've even managed to move to Google's Maven plugin from the old gae-maven-plugin (its authentication method got deprecated). So it's not all bad.

Now I can go back to what I love, nothing to do with Java or Web Services: DSP processing and embedded development...

Ciao e grazie,
Emanuele
Reply all
Reply to author
Forward
0 new messages