lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Schmidt <peter.schmidt0...@gmail.com>
Subject Re: Solr 4.4.0 on Ubuntu 10.04 with Jetty 6.1 from package Repository
Date Thu, 10 Oct 2013 15:57:31 GMT
SOLVED: I reinstalled the jetty package, because i wanted to get a clean
installation. And now it's working with your hint Guido :-) Thank you very
much.

What i did:

# Download Solr
wget http://archive.apache.org/dist/lucene/solr/4.4.0/solr-4.4.0.tgz
tar xvfz solr-4.4.0.tgz

# Extract content from solr.war and add missing jars from the lib/ext like
Guido described
mkdir dir_to_extract
cp -R solr-4.4.0/example/webapps/solr.war dir_to_extract
cd dir_to_extract
unzip solr.war
rm solr.war
cp ../solr-4.4.0/example/lib/ext/*.jar WEB-INF/lib/
jar -cvf solr.war *

# copy new var to jetty webapps folder
sudo cp solr.war /usr/share/jetty/webapps

# Copy Solr example files
sudo mkdir /usr/share/solr
sudo cp -R solr-4.4.0/example/* /usr/share/solr/
sudo chmod -R jetty:adm /usr/share/solr

# Edit jetty config
vi /etc/default/jetty

NO_START=0
VERBOSE=yes
JETTY_HOST=0.0.0.0
JAVA_OPTIONS="-Xmx256m -Djava.awt.headless=true
-Dsolr.solr.home=/usr/share/solr/solr $JAVA_OPTIONS"

And then Solr 4.4.0 is accessible on http://localhost:8080/solr

But i also saw the box with the hint on
https://cwiki.apache.org/confluence/display/solr/Installing+Solr:

"Solr ships with a working Jetty server, with optimized settings for Solr,
inside the example directory. It is recommended that you use the provided
Jetty server for optimal performance. If you absolutely must use a
different servlet container then continue to the next section on how to
install Solr."

@Guido: Do you know if the performance is weaker with the Jetty 6.1?

And which Jetty version is the inluded one?



2013/10/10 Peter Schmidt <peter.schmidt0885@gmail.com>

> i added the jars you have listet and recreated a solr.war
>
>
> 2013/10/10 Peter Schmidt <peter.schmidt0885@gmail.com>
>
>> OK. I extracted the solr.war in webapps folder. And than out.log reports
>>
>> 2013-10-10 16:47:28.184:WARN::Config error at <New id="ServerLog"
>> class="java.io.PrintStream"><Arg>|        <New
>> class="org.mortbay.util.RolloverFileOutputStream"><Arg><SystemProperty
>> name="jetty.home" default="."/>/logs/yyyy_mm_dd.stderrout.log</Arg><Arg
>> type="boolean">false</Arg><Arg type="int">90</Arg><Arg><Call
>> class="java.util.TimeZone"
>> name="getTimeZone"><Arg>GMT</Arg></Call></Arg><Get
id="ServerLogName"
>> name="datedFilename"/></New>|      </Arg></New>
>> java.lang.reflect.InvocationTargetException
>> 2013-10-10 16:47:28.191:WARN::EXCEPTION
>> java.lang.reflect.InvocationTargetException
>>
>>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>>         at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>         at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
>>         at
>> org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:608)
>>         at
>> org.mortbay.xml.XmlConfiguration.itemValue(XmlConfiguration.java:915)
>>         at
>> org.mortbay.xml.XmlConfiguration.value(XmlConfiguration.java:837)
>>         at
>> org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:593)
>>         at
>> org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:256)
>>         at
>> org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:214)
>>         at
>> org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:974)
>>
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:616)
>>         at org.mortbay.start.Main.invokeMain(Main.java:194)
>>         at org.mortbay.start.Main.start(Main.java:534)
>>         at
>> org.mortbay.jetty.start.daemon.Bootstrap.start(Bootstrap.java:30)
>>
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:616)
>>         at
>> org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:177)
>> 2013-10-10 16:47:28.192:WARN::Nested in
>> java.lang.reflect.InvocationTargetException:
>> java.io.IOException: Cannot write log file
>> /var/log/jetty/2013_10_10.stderrout.log
>>         at
>> org.mortbay.util.RolloverFileOutputStream.setFile(RolloverFileOutputStream.java:233)
>>         at
>> org.mortbay.util.RolloverFileOutputStream.<init>(RolloverFileOutputStream.java:164)
>>         at
>> org.mortbay.util.RolloverFileOutputStream.<init>(RolloverFileOutputStream.java:116)
>>
>>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>>         at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>         at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
>>         at
>> org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:608)
>>         at
>> org.mortbay.xml.XmlConfiguration.itemValue(XmlConfiguration.java:915)
>>         at
>> org.mortbay.xml.XmlConfiguration.value(XmlConfiguration.java:837)
>>         at
>> org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:593)
>>         at
>> org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:256)
>>         at
>> org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:214)
>>         at
>> org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:974)
>>
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:616)
>>         at org.mortbay.start.Main.invokeMain(Main.java:194)
>>         at org.mortbay.start.Main.start(Main.java:534)
>>         at
>> org.mortbay.jetty.start.daemon.Bootstrap.start(Bootstrap.java:30)
>>
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:616)
>>         at
>> org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:177)
>>
>>
>> 2013/10/10 Guido Medina <guido.medina@temetra.com>
>>
>>> Add the following jars inside solr.war WEB-INF/lib folder:
>>>
>>> jcl-over-slf4j-1.7.5.jar
>>> jul-to-slf4j-1.7.5.jar
>>> log4j-1.2.17.jar
>>> slf4j-api-1.7.5.jar
>>> slf4j-log4j12-1.7.5.jar
>>>
>>> Optional if you are going to use spatial search:
>>> jts-1.13.jar
>>>
>>> Guido.
>>>
>>>
>>> On 10/10/13 14:33, Peter Schmidt wrote:
>>>
>>>> Sorry terminal shows:
>>>>
>>>> $ sudo service jetty start
>>>> Found JAVA=/usr/lib/jvm/java-6-**openjdk/jre/bin/java in JAVA_HOME=/
>>>> Starting Jetty: FAILED
>>>>
>>>>
>>>> 2013/10/10 Peter Schmidt <peter.schmidt0885@gmail.com>
>>>>
>>>>  The log:
>>>>>
>>>>> 2013-10-10 15:01:47.071:INFO::jetty-6.1.**22
>>>>> 2013-10-10 15:01:47.110:INFO::Deploy /etc/jetty/contexts/javadoc.**xml
>>>>> ->
>>>>> org.mortbay.jetty.handler.**ContextHandler@2353f67e
>>>>> {/javadoc,file:/usr/share/doc/**libjetty-java/api/}
>>>>> 2013-10-10 15:01:47.161:INFO::NO JSP Support for , did not find
>>>>> org.apache.jasper.servlet.**JspServlet
>>>>> 2013-10-10 15:01:47.192:INFO::Extract file:/var/lib/jetty/webapps/**
>>>>> solr.war
>>>>> to /tmp/Jetty_0_0_0_0_8080_solr.**war__solr__7k9npr/webapp
>>>>> 2013-10-10 15:01:47.761:INFO::NO JSP Support for /solr, did not find
>>>>> org.apache.jasper.servlet.**JspServlet
>>>>> 2013-10-10 15:01:47.868:WARN::failed SolrRequestFilter:
>>>>> org.apache.solr.common.**SolrException: Could not find necessary SLF4j
>>>>> logging jars. If using Jetty, the SLF4j logging jars need to go in the
>>>>> jetty lib/ext directory. For other containers, the corresponding
>>>>> directory
>>>>> should be used. For more information, see:
>>>>> http://wiki.apache.org/solr/**SolrLogging<http://wiki.apache.org/solr/SolrLogging>
>>>>> 2013-10-10 15:01:47.869:WARN::Failed startup of context
>>>>> org.mortbay.jetty.webapp.**WebAppContext@a13f991
>>>>> {/solr,file:/var/lib/jetty/**webapps/solr.war}
>>>>> org.apache.solr.common.**SolrException: Could not find necessary SLF4j
>>>>> logging jars. If using Jetty, the SLF4j logging jars need to go in the
>>>>> jetty lib/ext directory. For other containers, the corresponding
>>>>> directory
>>>>> should be used. For more information, see:
>>>>> http://wiki.apache.org/solr/**SolrLogging<http://wiki.apache.org/solr/SolrLogging>
>>>>>          at
>>>>> org.apache.solr.servlet.**SolrDispatchFilter.<init>(**
>>>>> SolrDispatchFilter.java:104)
>>>>>          at sun.reflect.**NativeConstructorAccessorImpl.**
>>>>> newInstance0(Native
>>>>> Method)
>>>>>          at
>>>>> sun.reflect.**NativeConstructorAccessorImpl.**newInstance(**
>>>>> NativeConstructorAccessorImpl.**java:57)
>>>>>          at
>>>>> sun.reflect.**DelegatingConstructorAccessorI**mpl.newInstance(**
>>>>> DelegatingConstructorAccessorI**mpl.java:45)
>>>>>          at java.lang.reflect.Constructor.**
>>>>> newInstance(Constructor.java:**532)
>>>>>          at java.lang.Class.newInstance0(**Class.java:374)
>>>>>          at java.lang.Class.newInstance(**Class.java:327)
>>>>>          at org.mortbay.jetty.servlet.**Holder.newInstance(Holder.**
>>>>> java:153)
>>>>>          at
>>>>> org.mortbay.jetty.servlet.**FilterHolder.doStart(**
>>>>> FilterHolder.java:92)
>>>>>          at
>>>>> org.mortbay.component.**AbstractLifeCycle.start(**
>>>>> AbstractLifeCycle.java:50)
>>>>>          at
>>>>> org.mortbay.jetty.servlet.**ServletHandler.initialize(**
>>>>> ServletHandler.java:662)
>>>>>          at org.mortbay.jetty.servlet.**Context.startContext(Context.*
>>>>> *java:140)
>>>>>          at
>>>>> org.mortbay.jetty.webapp.**WebAppContext.startContext(**
>>>>> WebAppContext.java:1250)
>>>>>          at
>>>>> org.mortbay.jetty.handler.**ContextHandler.doStart(**
>>>>> ContextHandler.java:518)
>>>>>          at
>>>>> org.mortbay.jetty.webapp.**WebAppContext.doStart(**
>>>>> WebAppContext.java:467)
>>>>>          at
>>>>> org.mortbay.component.**AbstractLifeCycle.start(**
>>>>> AbstractLifeCycle.java:50)
>>>>>          at
>>>>> org.mortbay.jetty.handler.**HandlerCollection.doStart(**
>>>>> HandlerCollection.java:152)
>>>>>          at
>>>>> org.mortbay.jetty.handler.**ContextHandlerCollection.**doStart(**
>>>>> ContextHandlerCollection.java:**156)
>>>>>          at
>>>>> org.mortbay.component.**AbstractLifeCycle.start(**
>>>>> AbstractLifeCycle.java:50)
>>>>>          at
>>>>> org.mortbay.jetty.handler.**HandlerCollection.doStart(**
>>>>> HandlerCollection.java:152)
>>>>>          at
>>>>> org.mortbay.component.**AbstractLifeCycle.start(**
>>>>> AbstractLifeCycle.java:50)
>>>>>          at
>>>>> org.mortbay.jetty.handler.**HandlerWrapper.doStart(**
>>>>> HandlerWrapper.java:130)
>>>>>          at org.mortbay.jetty.Server.**doStart(Server.java:224)
>>>>>          at
>>>>> org.mortbay.component.**AbstractLifeCycle.start(**
>>>>> AbstractLifeCycle.java:50)
>>>>>          at org.mortbay.xml.**XmlConfiguration.main(**
>>>>> XmlConfiguration.java:985)
>>>>>          at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native
>>>>> Method)
>>>>>          at
>>>>> sun.reflect.**NativeMethodAccessorImpl.**invoke(**
>>>>> NativeMethodAccessorImpl.java:**57)
>>>>>          at
>>>>> sun.reflect.**DelegatingMethodAccessorImpl.**invoke(**
>>>>> DelegatingMethodAccessorImpl.**java:43)
>>>>>          at java.lang.reflect.Method.**invoke(Method.java:616)
>>>>>          at org.mortbay.start.Main.**invokeMain(Main.java:194)
>>>>>          at org.mortbay.start.Main.start(**Main.java:534)
>>>>>          at org.mortbay.start.Main.start(**Main.java:441)
>>>>>          at org.mortbay.start.Main.main(**Main.java:119)
>>>>> 2013-10-10 15:01:47.870:WARN::failed
>>>>> org.mortbay.jetty.webapp.**WebAppContext@a13f991{/solr,**
>>>>> file:/var/lib/jetty/webapps/**solr.war}:
>>>>> java.lang.**NoClassDefFoundError: org/slf4j/Logger
>>>>> 2013-10-10 15:01:47.870:WARN::failed ContextHandlerCollection@**
>>>>> 2565a3c2:
>>>>> java.lang.**NoClassDefFoundError: org/slf4j/Logger
>>>>> 2013-10-10 15:01:47.870:INFO::Opened /var/log/jetty/2013_10_10.**
>>>>> request.log
>>>>> 2013-10-10 15:01:47.871:WARN::failed HandlerCollection@33e228bc:
>>>>> java.lang.**NoClassDefFoundError: org/slf4j/Logger
>>>>> 2013-10-10 15:01:47.871:WARN::Error starting handlers
>>>>> java.lang.**NoClassDefFoundError: org/slf4j/Logger
>>>>>          at java.lang.Class.**getDeclaredMethods0(Native Method)
>>>>>          at java.lang.Class.**privateGetDeclaredMethods(**
>>>>> Class.java:2482)
>>>>>          at java.lang.Class.getMethod0(**Class.java:2725)
>>>>>          at java.lang.Class.getMethod(**Class.java:1650)
>>>>>          at org.mortbay.log.Log.unwind(**Log.java:228)
>>>>>          at org.mortbay.log.Log.warn(Log.**java:197)
>>>>>          at
>>>>> org.mortbay.jetty.webapp.**WebAppContext.doStart(**
>>>>> WebAppContext.java:475)
>>>>> ...
>>>>>
>>>>> And when i copy the jars from solr-4.4.0/example/lib and
>>>>> solr-4.4.0/example/lib and solr-4.4.0/example/lib/ext to jettys lib
>>>>> directory and lib/ext the server is not starting anymore. Quits with
>>>>> JETTY:
>>>>> Failed without logging something
>>>>>
>>>>>
>>>>>
>>>>> 2013/10/10 Guido Medina <guido.medina@temetra.com>
>>>>>
>>>>>  Check the jetty logs, there must be something wrong in your collection
>>>>>> config, usually if it doesn't start it will tell you there.
>>>>>>
>>>>>> And of course, for every change you make be sure you restart jetty.
>>>>>>
>>>>>> Guido.
>>>>>>
>>>>>>
>>>>>> On 10/10/13 13:20, Peter Schmidt wrote:
>>>>>>
>>>>>>  No, it's not working that easy with the jetty 6.1.
>>>>>>>
>>>>>>> When i just add -Dsolr.solr.home to my /etc/default/jetty and
put the
>>>>>>> solr.war in the jetty webapps directory i got a 404 when in try
to
>>>>>>> reach
>>>>>>> http://localhost:8080 or http://localhost:8080/solr.
>>>>>>>
>>>>>>>
>>>>>>> 2013/10/10 Guido Medina <guido.medina@temetra.com>
>>>>>>>
>>>>>>>   My I forgot to mention where you need to copy the solr.war
file:
>>>>>>>
>>>>>>>> /var/lib/jetty/webapps
>>>>>>>>
>>>>>>>> Guido.
>>>>>>>>
>>>>>>>>
>>>>>>>> On 10/10/13 10:48, Guido Medina wrote:
>>>>>>>>
>>>>>>>>   Here is the pertinent changes you need to pass to
>>>>>>>> /etc/default/jetty:
>>>>>>>>
>>>>>>>>>     * JAVA_OPTIONS="-Djava.awt.******headless=true
>>>>>>>>> -Dfile.encoding=UTF-8
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>       -server -Xms8g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=50
>>>>>>>>>       -XX:+OptimizeStringConcat -XX:+UseStringCache"
>>>>>>>>>     * JAVA_OPTIONS="-Dsolr.solr.******
>>>>>>>>> home=$YOUR_SOLR_COLLECTION_******HOME
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>       $JAVA_OPTIONS"
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Of course, the 1st JAVA_OPTIONS are our own tuning, you
are free to
>>>>>>>>> play
>>>>>>>>> with it. Adjust your solr collection home to whatever
path is on
>>>>>>>>> your
>>>>>>>>> system.
>>>>>>>>>
>>>>>>>>> HTH,
>>>>>>>>>
>>>>>>>>> Guido.
>>>>>>>>>
>>>>>>>>> On 10/10/13 10:43, Guido Medina wrote:
>>>>>>>>>
>>>>>>>>>   I can confirm solr 3.x and 4.x runs fine with jetty
6.x from
>>>>>>>>> Ubuntu
>>>>>>>>>
>>>>>>>>>> repo, we have in production for few years now with
no issues, you
>>>>>>>>>> just need
>>>>>>>>>> to be sure your solr.war has the required jars in
it, also your
>>>>>>>>>> collection
>>>>>>>>>> must have the extra jars needed by your app.
>>>>>>>>>>
>>>>>>>>>> We have been running it in Ubuntu Server 12.04 LTS
for a long
>>>>>>>>>> time, it
>>>>>>>>>> is easy to have the jetty server with default repo
package since
>>>>>>>>>> it
>>>>>>>>>> is easy
>>>>>>>>>> to pass JVM parameters using /etc/default/jetty config
file.
>>>>>>>>>>
>>>>>>>>>> HTH,
>>>>>>>>>>
>>>>>>>>>> Guido.
>>>>>>>>>>
>>>>>>>>>> On 10/10/13 10:02, Furkan KAMACI wrote:
>>>>>>>>>>
>>>>>>>>>>   Do you get an error?
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2013/10/10 Peter Schmidt <peter.schmidt0885@gmail.com>
>>>>>>>>>>>
>>>>>>>>>>>    Hey folks,
>>>>>>>>>>>
>>>>>>>>>>>  for some days i tried to get Solr 4.4.0 working
as a webapp with
>>>>>>>>>>>> Jetty
>>>>>>>>>>>> 6.1
>>>>>>>>>>>> from the Ubuntu repository installed with
apt-get. First i
>>>>>>>>>>>> tried the
>>>>>>>>>>>> installation according the wiki http://wiki.apache.org/solr/**
>>>>>>>>>>>> SolrJetty <http://wiki.apache.org/solr/****SolrJetty<http://wiki.apache.org/solr/**SolrJetty>
>>>>>>>>>>>> <http://wiki.apache.**org/solr/SolrJetty<http://wiki.apache.org/solr/SolrJetty>
>>>>>>>>>>>> >
>>>>>>>>>>>>
>>>>>>>>>>>>  .
>>>>>>>>>>>>>
>>>>>>>>>>>> Then
>>>>>>>>>>>> i found this example
>>>>>>>>>>>> http://www.kingstonlabs.com/******blog/how-to-install-solr-36-*
>>>>>>>>>>>> ***<http://www.kingstonlabs.com/****blog/how-to-install-solr-36-**>
>>>>>>>>>>>> <http://www.kingstonlabs.**com/**blog/how-to-install-**
>>>>>>>>>>>> solr-36-**<http://www.kingstonlabs.com/**blog/how-to-install-solr-36-**>
>>>>>>>>>>>> >
>>>>>>>>>>>> on-ubuntu-1204/and<http://www.****kingstonlabs.com/blog/how-**
>>>>>>>>>>>> to-** <http://kingstonlabs.com/blog/how-to-**>
>>>>>>>>>>>> install-solr-36-on-ubuntu-****1204/and<http://www.**
>>>>>>>>>>>> kingstonlabs.com/blog/how-to-**install-solr-36-on-ubuntu-**
>>>>>>>>>>>> 1204/and<http://www.kingstonlabs.com/blog/how-to-install-solr-36-on-ubuntu-1204/and>
>>>>>>>>>>>> >
>>>>>>>>>>>>
>>>>>>>>>>>> tried the Configuration according to the
book pache Solr 4
>>>>>>>>>>>> Cookbook
>>>>>>>>>>>> by
>>>>>>>>>>>> Rafal Kuc.
>>>>>>>>>>>> But it semmed to be impossible to  run Solr
4.4.0 as webapp on
>>>>>>>>>>>> Ubuntus
>>>>>>>>>>>> jetty 6.1 :(
>>>>>>>>>>>> Can somebody confirm that it's impossible
or give me an advice
>>>>>>>>>>>> how
>>>>>>>>>>>> to
>>>>>>>>>>>> run
>>>>>>>>>>>> Solr 4.4.0 on Jetty 6.1?
>>>>>>>>>>>> Regards
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message