[Spacewalk-list] Cannot create kickstart profile

E. Tiesinga tiesinga at astro.rug.nl
Tue Jan 25 08:50:48 UTC 2011


Hi,

I have made the changes in the code (using git), Colin suggested.
After building new spacewalk-java rpm's (make test-rpm) and installing 
the rpm's it still not working.
There is and ERROR. see:

	at com.redhat.rhn.domain.kickstart.builder.KickstartBuilder.create(KickstartBuilder.java:545)
	at com.redhat.rhn.frontend.action.kickstart.CreateProfileWizardAction.runComplete(CreateProfileWizardAction.java:288)
	... 49 more
Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near ")"
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1525)


Maybe this the problem?

I understand form Jonathan that there are more places in the code with 
this problem.
I need on this moment only a fix for the kickstart profiles.
If it is fixed I can try to install the following months  150  machines 
and see how the performance is from spacewalk
in combination with postgresql and if it scales.

Greetings
Eite Tiesinga


On 01/24/2011 11:24 AM, Jonathan Hoser wrote:
> This is only the first of a few related bugs in the SQL statements,
> I'll try to get them sorted later today - thought I have them applied 
> on my SW1.2;
>
> might this pose any problems? I'm reluctant to upgrade my 
> semi-production sw1.2.
>
> best
> -Jonathan
>
> On 01/24/2011 12:18 AM, Colin Coe wrote:
>> On Mon, Jan 24, 2011 at 6:22 AM, tiesinga<tiesinga at astro.rug.nl>  wrote:
>>> Hi list,
>>>
>>> I cannot create a kickstart profile
>>> Server is 1.3 nightly running on Centos 5.5
>>> Using postgresql database.
>>>
>>> Greetings
>>> Eite Tiesinga
>>>
>>> I get de following messages:
>>>
>>> The following exception occurred while executing this request:
>>> POST /rhn/kickstart/CreateProfileWizard.do
>>>
>>> Date:1/23/11 11:16:15 PM CET
>>> Headers:
>>>   host: satellite
>>>   user-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6)
>>> Gecko/20100630 Red Hat/3.6.6-2.el6 Firefox/3.6.6
>>>   accept: 
>>> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>>>   accept-language: en-us,en;q=0.5
>>>   accept-encoding: gzip,deflate
>>>   accept-charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
>>>   Keep-Alive: 115
>>>   connection: keep-alive
>>>   referer:https://satellite/rhn/kickstart/CreateProfileWizard.do
>>>   cookie: JSESSIONID=65B309F1C883D87D327C05747FA95DA3;
>>> pxt-session-cookie=8x1221b860f6aed16d58e729c1c3e1d7f0
>>>   content-type: application/x-www-form-urlencoded
>>>   content-length: 207
>>>
>>> Request:
>>> Local Name = satellite
>>> Server Name = satellite
>>> Requested Session Id came from Cookie
>>> Requested Session Valid = true
>>> Session =
>>> org.apache.catalina.session.StandardSessionFacade at 55da4057[session=StandardSession[65B309F1C883D87D327C05747FA95DA3]] 
>>>
>>> Protocol = https
>>> Request Locale = en_US
>>> Request Character Encoding = UTF-8
>>> Attribute Names = rhnActiveLang, javax.servlet.request.ssl_session,
>>> org.apache.struts.action.MESSAGE,
>>> javax.servlet.jsp.jstl.fmt.timeZone.request, session,
>>> javax.servlet.request.key_size, __sitemesh__filterapplied,
>>> javax.servlet.request.cipher_suite, requestedUri, 
>>> kickstartCreateWizardForm,
>>> org.apache.struts.action.mapping.instance, 
>>> org.apache.struts.action.MODULE,
>>>
>>> Form Variables:
>>>   prevStep: second
>>>   rootPasswordConfirm: test
>>>   rootPassword: test
>>>   virtualizationTypeLabel: none
>>>   defaultDownload: true
>>>   nextStep: complete
>>>   kickstartLabel: ks-sl6-x86_64
>>>   kstreeId: 1
>>>   userDefinedDownload:
>>>   wizardStep: complete
>>>
>>>
>>> User Information:
>>> User admin (id 1, org_id 1)
>>>
>>> Exception:
>>> javax.servlet.ServletException
>>>         at
>>> org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535) 
>>>
>>>         at
>>> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433) 
>>>
>>>         at
>>> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:237) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.struts.RhnRequestProcessor.process(RhnRequestProcessor.java:82) 
>>>
>>>         at
>>> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
>>>         at
>>> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.servlets.AuthFilter.doFilter(AuthFilter.java:101) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
>>>
>>>         at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:142) 
>>>
>>>         at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:58) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.servlets.LocalizedEnvironmentFilter.doFilter(LocalizedEnvironmentFilter.java:67) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.servlets.EnvironmentFilter.doFilter(EnvironmentFilter.java:108) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.servlets.SessionFilter.doFilter(SessionFilter.java:55) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.servlets.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:97) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
>>>
>>>         at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) 
>>>
>>>         at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) 
>>>
>>>         at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
>>>
>>>         at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
>>>
>>>         at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 
>>>
>>>         at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) 
>>>
>>>         at
>>> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
>>>         at
>>> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
>>>         at 
>>> org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
>>>         at
>>> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704) 
>>>
>>>         at
>>> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897) 
>>>
>>>         at
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) 
>>>
>>>         at java.lang.Thread.run(Thread.java:636)
>>> Caused by: java.lang.reflect.InvocationTargetException
>>>         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
>>> com.redhat.rhn.frontend.struts.wizard.WizardStep.invoke(WizardStep.java:116) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.struts.wizard.RhnWizardAction.dispatch(RhnWizardAction.java:103) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.struts.wizard.RhnWizardAction.execute(RhnWizardAction.java:89) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.action.kickstart.CreateProfileWizardAction.execute(CreateProfileWizardAction.java:104) 
>>>
>>>         at
>>> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) 
>>>
>>>         ... 40 more
>>> Caused by: org.hibernate.exception.SQLGrammarException: could not 
>>> execute
>>> query
>>>         at
>>> org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) 
>>>
>>>         at
>>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
>>>
>>>         at org.hibernate.loader.Loader.doList(Loader.java:2223)
>>>         at 
>>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
>>>         at org.hibernate.loader.Loader.list(Loader.java:2099)
>>>         at
>>> org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
>>>         at
>>> org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
>>>         at
>>> org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142) 
>>>
>>>         at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
>>>         at
>>> com.redhat.rhn.common.hibernate.HibernateFactory.listObjectsByNamedQuery(HibernateFactory.java:265) 
>>>
>>>         at
>>> com.redhat.rhn.common.hibernate.HibernateFactory.listObjectsByNamedQuery(HibernateFactory.java:206) 
>>>
>>>         at
>>> com.redhat.rhn.domain.channel.ChannelFactory.getUserAcessibleChannels(ChannelFactory.java:327) 
>>>
>>>         at
>>> com.redhat.rhn.manager.channel.ChannelManager.userAccessibleChildChannels(ChannelManager.java:763) 
>>>
>>>         at
>>> com.redhat.rhn.manager.channel.ChannelManager.getToolsChannel(ChannelManager.java:1834) 
>>>
>>>         at
>>> com.redhat.rhn.manager.kickstart.KickstartScheduleCommand.getToolsChannel(KickstartScheduleCommand.java:1041) 
>>>
>>>         at
>>> com.redhat.rhn.manager.kickstart.KickstartSessionCreateCommand.<init>(KickstartSessionCreateCommand.java:94) 
>>>
>>>         at
>>> com.redhat.rhn.manager.kickstart.KickstartSessionCreateCommand.<init>(KickstartSessionCreateCommand.java:53) 
>>>
>>>         at
>>> com.redhat.rhn.manager.kickstart.KickstartWizardHelper.store(KickstartWizardHelper.java:181) 
>>>
>>>         at
>>> com.redhat.rhn.domain.kickstart.builder.KickstartBuilder.create(KickstartBuilder.java:545) 
>>>
>>>         at
>>> com.redhat.rhn.frontend.action.kickstart.CreateProfileWizardAction.runComplete(CreateProfileWizardAction.java:288) 
>>>
>>>         ... 49 more
>>> Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at 
>>> or near
>>> ")"
>>>         at
>>> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1525) 
>>>
>>>         at
>>> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1309) 
>>>
>>>         at
>>> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) 
>>>
>>>         at
>>> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452) 
>>>
>>>         at
>>> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354) 
>>>
>>>         at
>>> org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:258) 
>>>
>>>         at
>>> com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:50) 
>>>
>>>         at
>>> org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186) 
>>>
>>>         at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
>>>         at org.hibernate.loader.Loader.doQuery(Loader.java:674)
>>>         at
>>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) 
>>>
>>>         at org.hibernate.loader.Loader.doList(Loader.java:2220)
>>>         ... 66 more
>>>
>>>
>>>
>>>
>>>
>>> -- 
>>> Eite Tiesinga
>>>
>>> Kapteyn Astronomical Institute
>>> University of Groningen
>>> Computer group
>>> Landleven 12 (Zernike building)
>>> 9747 AD Groningen
>>> the Netherlands
>>> Phone: +31 (0)50-3634017
>>>
>> Hi
>>
>> I ran into this also. The problem is with one of the SQL queries that
>> still uses the Oracle (+) join syntax.  I've a patch waiting in the
>> wings but I'm had so much trouble with the dev workstation procedure
>> of the last month or two and many competing priorities that its had to
>> take a number and wait its turn.
>>
>> The offending file is 
>> code/src/com/redhat/rhn/domain/channel/Channel.hbm.xml
>>
>> The offending code is:
>> ---
>> <sql-query name="Channel.accessibleChildChannelIds">
>> <![CDATA[SELECT {c.*}
>>    FROM   rhnChannel c
>>           LEFT OUTER JOIN rhnChannelCloned c_1_ ON c.id = c_1_.id
>>   WHERE   parent_channel = :cid
>>       AND rhn_channel.get_org_access(c.id, :org_id) = 1
>>   UNION
>>   SELECT {c.*}
>>   FROM    rhnChannel c,
>>           rhnSharedChannelView sc,
>>           rhnChannelCloned c_1_
>>   WHERE   sc.parent_channel = :cid
>>   AND     sc.org_trust_id = :org_id
>>   AND     sc.id = c.id
>>   AND     c.id = c_1_.id (+)
>>      ]]>
>> <return alias="c" class="com.redhat.rhn.domain.channel.Channel" />
>> </sql-query>
>> ---
>> needs changing to something similar to
>> ---
>> <sql-query name="Channel.accessibleChildChannelIds">
>> <![CDATA[SELECT {c.*}
>>    FROM   rhnChannel c
>>           LEFT OUTER JOIN rhnChannelCloned c_1_ ON c.id = c_1_.id
>>   WHERE   parent_channel = :cid
>>       AND rhn_channel.get_org_access(c.id, :org_id) = 1
>>   UNION
>>   SELECT {c.*}
>>   FROM    rhnChannel c,
>>           rhnSharedChannelView sc,
>>           rhnChannelCloned c_1_,
>>           LEFT OUTER JOIN rhnChannelCloned c_1_ ON c.id = c_1_.id
>>   WHERE   sc.parent_channel = :cid
>>   AND     sc.org_trust_id = :org_id
>>   AND     sc.id = c.id
>>      ]]>
>> <return alias="c" class="com.redhat.rhn.domain.channel.Channel" />
>> </sql-query>
>> ---
>>
>> This is untested as I don't have a working dev environment right now
>> but it is along those lines.
>>
>> CC
>>
>> -- 
>> RHCE#805007969328369
>>
>> _______________________________________________
>> Spacewalk-list mailing list
>> Spacewalk-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/spacewalk-list
>> .
>>
>
>


-- 
Eite Tiesinga

Kapteyn Astronomical Institute
University of Groningen
Computer group
Landleven 12 (Zernike building)
9747 AD Groningen
the Netherlands
Phone: +31 (0)50-3634017





More information about the Spacewalk-list mailing list