lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cassandra Targett (JIRA)" <>
Subject [jira] [Resolved] (SOLR-11515) bin/post uses "-t" to check for stdin, easily breaks when run from cron (which has no terminal)
Date Tue, 23 Apr 2019 13:21:00 GMT


Cassandra Targett resolved SOLR-11515.
    Resolution: Duplicate

Closing as a duplicate of more recently filed SOLR-13422 since the more recent issue has been

> bin/post uses "-t" to check for stdin, easily breaks when run from cron (which has no
> -----------------------------------------------------------------------------------------------
>                 Key: SOLR-11515
>                 URL:
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: scripts and tools
>            Reporter: Hoss Man
>            Priority: Major
> one of our users (matt__) spent all day on freenode#solr trying to figure out why a simple
script he had that called {{bin/post}} would work fine when he ran it, but didn't seem to
do anything when run as a cronjob.
> After helping him setup better logging from cron, it ultimiately came down to the fact
that a command like this (which was the very first thing in his script)...
> {code}
> bin/post -c yyy -host xxx -d '<delete><query>zzz</query></delete>'
> {code}
> ...was failing with an error like this...
> {noformat}
> Unrecognized argument: <delete><query>zzz</query></delete>
> If this was intended to be a data file, it does not exist relative to /opt/blah/blah
> {noformat}
> Ultimately we determined that the problem was how {{bin/post}} tests for "stdin" -- by
checking to see if it's _not_ being run in a terminal (with ' {{! -t 0}} ') -- in which case
it doesn't treat the argument after {{-d}} as data, and instead lets it fall through to the
next iteration of the arg parsing loop (as either another switch, or a filename)
> the problem here being that running (in a script) as a cronjob is another case where
{{bin/post}} is "not being run in a terminal" so the {{-d}} parsing would up completely ignoring
the {{<delete>...}} string, evne though there was nothing being redirected on stdin.
> the workaround is to use {{echo}} to give {{bin/post}} some stdin, since it was going
to expect it for any usage of {{-d}}...
> {code}
> echo '<delete><query>zzz</query></delete>' | bin/post -c yyy
-host xxx -d 
> {code}

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message