Bug 735059

Summary: rhnpush fails on spacewalk running PostgreSQL
Product: [Community] Spacewalk Reporter: Martin Minar <mminar>
Component: ServerAssignee: Michael Mráka <mmraka>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: low Docs Contact:
Priority: low    
Version: 1.6CC: jhutar, jmikulka, mkoci, mmraka, pstudeni, slukasik
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: spacewalk-backend-1.6.15-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-22 16:50:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 723481    

Description Martin Minar 2011-09-01 10:24:14 UTC
Description of problem:
When running PostgreSQL database you might encounter into problems when trying to write BLOB into database. This particular when using rhnpush.

Version-Release number of selected component (if applicable):
spacewalk-backend-1.6.13-1

How reproducible:
Always

Steps to Reproduce:
1. Prepare packages you want to push
2. rhnpush -u user -p pass --server=https://<FQDN>/APP -c test-x86_64-0 -d <packages_directory>
  
Actual results:
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/spacewalk/server/apacheUploadServer.py", line 100, in _wrapper
    ret = function(req)
  File "/usr/share/rhn/upload_server/handlers/package_push/package_push.py", line 136, in handler
    relative_path=self.rel_package_path, org_id=self.org_id)
  File "/usr/lib/python2.4/site-packages/spacewalk/server/rhnPackageUpload.py", line 166, in push_package
    importer.run()
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/importLib.py", line 625, in run
    self.submit()
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/packageImport.py", line 309, in submit
    transactional=self.transactional)
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/backend.py", line 667, in processPackages
    transactional=transactional)
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/backend.py", line 1515, in __processObjectCollection__
    return self.__doDML(dml)
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/backend.py", line 1623, in __doDML
    self.__doInsert(dml.insert, dml.tables)
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/backend.py", line 1630, in __doInsert
    self.__doInsertTable(tname, dict)
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/backend.py", line 1644, in __doInsertTable
    insertObj.query(hash)
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/backendLib.py", line 441, in query
    self._update_blobs(blobValuesHash)
  File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/backendLib.py", line 353, in _update_blobs
    if blob.size() > len_v:
AttributeError: 'buffer' object has no attribute 'size'

Expected results:
Push is done.

Additional info:
This kind of bug is described in Postgre porting guide: https://fedorahosted.org/spacewalk/wiki/PostgreSQLPortingGuide#blob_in_python

Comment 3 Michael Mráka 2011-09-02 08:53:47 UTC
Fixed in spacewalk master by
commit 16a5943fda761f2c6b27e02e9ca8ea515bc0426e
    735059 - modified TableInsert to use our direct blob insert

Comment 4 Milan Zázrivec 2011-12-22 16:50:21 UTC
Spacewalk 1.6 has been released.