Hi Kern,

My guess is that ua->jcr->pool was initialized (by set_jcr_defaults?) to
points to Rasmus's ProjectsArchive pool, so ua->jcr->pool->cleaning_prefix is
non-NULL on entry to is_cleaning_tape (until he edited the resource).

Then ua->jcr->pool is set to a different pool (maybe Scratch?), where
ua->jcr->pool->cleaning_prefix is NULL, so strlen is called on NULL.

The size of size_t usually matches the size of pointers, so it will be twice
the size of int on most 64-bit systems.  Casting it to int sounds safe here to
me.

__Martin


>>>>> On Mon, 21 May 2018 17:37:39 +0200, Kern Sibbald said:
> 
> Hello Martin,
> 
> If accesses ua->jcr->pool->cleaning_prefix before setting it, then why 
> doesn't the test for NULL at the beginning either seg fault or simply 
> return?
> 
> The format in my code at line 999 seems to me to match the arguments 
> correctly in that a size_t and an int to the best of my knowledge are 
> always the same size.  However, it probably would be better to cast it 
> to an int.
> 
> Best regards,
> 
> Kern
> 
> 
> On 05/21/2018 02:04 PM, Martin Simmons wrote:
> > Yes, possibly.
> >
> > OTOH, I think is_cleaning_tape might have a bug: it reads
> > ua->jcr->pool->cleaning_prefix before setting ua->jcr->pool.
> >
> > Also, the format string in the debug message doesn't match the args (strlen
> > does not return an int) so the debug output might cause more
> > problems/confusion.  There are loads of the these in Bacula.
> >
> > __Martin
> >
> >
> >
> >>>>>> On Mon, 21 May 2018 13:39:20 +0200, Kern Sibbald said:
> >>    
> >>      Hello,
> >>
> >>      It looks to me like it might be a compiler bug.  Try compiling
> >>        Bacula with -O0  (minus capital-o zero).
> >>
> >>      Also you could set debug level at 110 in the Director and turn on
> >>        trace.  Then we might see something in the trace file.
> >>
> >>      Best regards,
> >>
> >>      Kern
> >>
> >>
> >>
> >>
> >>
> >>    On 05/20/2018 05:15 PM, Rasmus Linden
> >>        wrote:
> >>
> >>      
> >>             cite="mid:632e6317-7e21-4a8f-b21c-fb044db9a...@gmail.com">
> >>        
> >>        Hey All !!
> >>
> >>
> >>        
> >>        I have a strange issue, I hope some of you can help
> >>          me with. I am currently running bacula version: 9.0.7, recently
> >>          migrated from mysql to postgres.
> >>        Everything is working as expected, except when i try
> >>          to table a tape and stick it in our scratch pool, bacula-dir
> >>          crashes with a bang !
> >>        I have set the debug level to 10, and pasted the
> >>          traceback.
> >>        The last thing happening before the crash, according
> >>          to the stack is a sql query :
> >>
> >>
> >>        
> >>        SELECT 
> >> MediaId,VolumeName,VolJobs,VolFiles,VolBlocks,VolBytes,VolABytes,VolHoleBytes,VolHoles,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes,MediaType,VolStatus,PoolId,VolRetention,VolUseDuration,MaxVolJ
> >>            class="">
> >> obs,MaxVolFiles,Recycle,Slot,FirstWritten,LastWritten,InChanger,EndFile,EndBlock,VolType,VolParts,VolCloudParts,LastPartBytes,LabelType,LabelDate,StorageId,Enabled,LocationId,RecycleCount,InitialWrite,ScratchPoolId,RecyclePoolId
> >>            class="">
> >>          ,VolReadTime,VolWriteTime,ActionOnPurge,CacheRetention FROM
> >>          Media WHERE VolumeName=‘B00110L6'
> >>
> >>
> >>        
> >>        I have tried running the query by hand, and it does
> >>          not fail *screenshot from pgadmin attached.
> >>
> >>
> >>        
> >>        If i label the volume and stick it into a none
> >>          scratch pool, it completes with no error.
> >>
> >>
> >>        
> >>        Any suggestion on how to fix is mostly appreciated !
> >>
> >>
> >>        
> >>        All the best
> >>
> >>
> >>        
> >>        Ras
> 
> 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to